Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Процедура поиска.


Автор: KSILAR 21.4.2006, 12:42
Нужна процедура (или алгоритм поиска из файла) по заданному слову.
Или похожему на него. 

Автор: _hunter 21.4.2006, 12:46
дык.
находим файл; открываем его на чтение; читаем из него текст, равный длине искомого с побайтовым смещением; сравниваем считанный текст с исходным; 

Автор: KSILAR 21.4.2006, 14:24
Hunter, а поподробнее в виде кода на Delphi, пожалуйста? 

Автор: _hunter 21.4.2006, 14:36
это уже в другие разделы -- "Работа", например... 

Автор: Alexeis 21.4.2006, 14:46
для файлов не более 50мб
сгодится:
Код

var
  f :  TFileStrem;
  m : AnsiString;
  origSt: AnsiString;
  found : boolean;
Begin
found := 0;
f := TFileStrem.create('myfile', fmReadOpen);
f.Seek(0, soFromBeginning);
SetLength(m, f.size);
f.ReadBuffer(m, f.Size);
if pos(origSt, m) <> 0
then
  found := true;


Добавлено @ 14:49 
Цитата(KSILAR @  21.4.2006,  11:42 Найти цитируемый пост)
Или похожему на него. 

это намного сложнее.

для файлов больших 50мб лучше использовать файлы отображаемые в память или читать блоками по 2-3Мб и искать в них 

Автор: ivan219 21.4.2006, 20:19
alexeis1 а можеш поподробнее расписать свой код smile или дать полный пример smile а то я несовсем разобрался. 

Автор: KSILAR 21.4.2006, 21:15
Да было бы неплохо если поподробнее!!! smile  

Автор: Ryn 21.4.2006, 21:16
а какая функция ищет строку в тексте с любой позиции ( не как pos только с первой ) ? 

Автор: Yanis 21.4.2006, 21:31
Цитата(Ryn @  21.4.2006,  21:16 Найти цитируемый пост)
а какая функция ищет строку в тексте с любой позиции ( не как pos только с первой ) ?  

PosEx smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)