Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2012, 23:22   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Несколько вопросов ( Delphi 7 )

Всем доброго времени суток. Столкнулся с такими вопросами ...

1. есть слово, которое записано в переменной. Как проверить, на пример содержит ли это слово знак "_" или нет ?

2. При помощи HEX редактора открыл файлик и всё увиденное записал в массив. Получилоcь вот, что
Код:
  buf1: array[0..58] of Byte =($00, $00, $09, $00,$07,$73,$65,$72,$76,$65,  ...
каким образом можно записать все значения массива в файл, чтобы получась копия исходного ?

3. Возможно ли каким либо образом проверить, находится в архиве файл tratata.txt. В роли архива выступает jar-файл.
-Jack- вне форума Ответить с цитированием
Старый 14.05.2012, 23:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1)
Код:
if Pos('_', Переменная)>0 then // содержит
else // не содержит
2)
воспользоваться либо стареньким добрым BlockWrite
либо TFileStream:
Код:
 buf1: array[0..58] of Byte =($00, $00, $09, $00,$07,$73,$65,$72,$76,$65,  ...

var
    TF : TFileStream;
begin
   try
      TF := TFileStream.Create('MyCloneNewFile.bin', fmCreate );
      TF.WriteBuffer(Buf1, 59 );
   finally
      FreeAndNil(TF);
   end;
TFile
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.05.2012, 23:47   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1)

Код:
if (0 < pos('_', slovo)) then  // да, содержит
2)

Код:
var
  f: file;
begin
  assign(f, 'copy.dat');
  reset(f);
  blockwrite(f, buf1, sizeof(buf1));  // вроде не соврал
  closefile(f); // точно не помню
end;
3) был такой архиватор jar под дос, лет 15 назад. Но, скорей всего, речь не про него, а про явовские архивы (которые суть .зип). В любом случае, запускаем внешний архиватор с опцией list и перенаправлением вывода в файл, далее файл сканируем на наличие "tratata.txt". Можно и в лоб сканировать сам файл архива, имена файлов там обычно так и хранятся, как есть.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 15.05.2012, 02:41   #4
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Спасибо большое, что помогли )) Но возникло ещё 2 вопроса )))
1)
Код:
 if Pos('_', Переменная)>0 then // содержит
else // не содержит
А если речь идет о диапазоне на пример от 'А до Я' ?

Цитата:
3) был такой архиватор jar под дос, лет 15 назад. Но, скорей всего, речь не про него, а про явовские архивы (которые суть .зип). В любом случае, запускаем внешний архиватор с опцией list и перенаправлением вывода в файл, далее файл сканируем на наличие "tratata.txt". Можно и в лоб сканировать сам файл архива, имена файлов там обычно так и хранятся, как есть.
Да речь идет о Java-архиве.
А можно чуть по подробней с реализацией ?

Просто у меня была мысль просмотреть Java архив по байтам и выловить tratata.txt, потому что он HEX'ом очень хорошо просматривается и всё видно )
-Jack- вне форума Ответить с цитированием
Старый 15.05.2012, 04:25   #5
temaps
Форумчанин
 
Регистрация: 15.05.2011
Сообщений: 160
По умолчанию

Цитата:
Сообщение от -Jack- Посмотреть сообщение
А если речь идет о диапазоне на пример от 'А до Я' ?
есть такая штука удобная, цикл называется
temaps вне форума Ответить с цитированием
Старый 15.05.2012, 04:28   #6
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Цитата:
Сообщение от temaps Посмотреть сообщение
есть такая штука удобная, цикл называется
А каким образом можно это реализовать, если нужно, чтобы переменная содержала только цифры и англ буквы ?
-Jack- вне форума Ответить с цитированием
Старый 15.05.2012, 08:26   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от -Jack-
чтобы переменная содержала только цифры и англ буквы ?
для таких вещей удобно использовать множества.
вот так, например:
Код:
function IsGoodChars( s : string ) : boolean;
var i : integer;
begin
   Result := false;
   for i:=1 to Length(s) do
     if Not (s[i] in ['a'..'z','A'..'Z','0'..'9'] ) then Exit;
   Result := true;
end;

....
// использование
 if IsGoodChars( Переменная) then // good! содержит только латиницу/цифры
 else // плохая строчка, что-то там ещё закралось не нужное!!


-Jack-, без обид, но уроверь владения языком Паскаль у Вас ниже плинтуса...
может Вам стоит книжки для начинающих почитать, задачки (начального уровня) порешать?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов по C++ Antitime Общие вопросы C/C++ 10 26.01.2012 15:00
Несколько вопросов DeFix Работа с сетью в Delphi 3 28.11.2011 13:48
несколько вопросов по C Horus92 Общие вопросы C/C++ 2 15.11.2009 16:08
БД - Несколько вопросов lutdan БД в Delphi 3 11.10.2009 20:22
несколько вопросов fitc Общие вопросы Delphi 28 14.07.2009 21:20