Помогите, plzz!!!
Необходимо произвести быстрое считывание и просмотр текстового файла на наличие к-л информации
читаю посимвольно стандартной функцией delphi read в цикле, но получается ужасно долго
я так понимаю надо загрузить весь файл в память(или его часть) в память и там уже производить все операции с ним
но как это сделать быстро???
Re: быстрое считывание и просмотр файла
От:
Аноним
Дата:
24.01.02 16:03
Оценка:
Здравствуйте puzzle, Вы писали:
P>Помогите, plzz!!! P>Необходимо произвести быстрое считывание и просмотр текстового файла на наличие к-л информации P>читаю посимвольно стандартной функцией delphi read в цикле, но получается ужасно долго P>я так понимаю надо загрузить весь файл в память(или его часть) в память и там уже производить все операции с ним P>но как это сделать быстро???
Еще со времен Турбо Паскаля есть функции blockread и blockwrite. Можешь использовать их.
Здравствуйте puzzle, Вы писали:
P>Здравствуйте Аноним, Вы писали:
А>>Еще со времен Турбо Паскаля есть функции blockread и blockwrite. Можешь использовать их.
P>Пробовал, но у меня с ними полно проблем — очень часто выскакивают ошибки P>может покажешь как их правильно использовать??
const
SizeOfBlock : integer = 100;
var
F : file;
Block : array [0..SizeOfBlock-1] of TRecord; // TRecord — тип записи из которых состоит твой файл
RecSize, ReadCount : integer;
begin
...
AssginFile (F, 'имя_файла'); // Assign (F, 'имя_файла') для TP
Reset (F, RecSize); // RecSize — это размер одной записи в файле в байтах
while not eof (F) do begin
blockread (F, Block, SizeOfBlock, ReadCount); // в ReadCount — кол-во прочитанных записей
for i := 0 to ReadCount-1 do begin
... Block [i] ... ; // работай c данной записью
end;
end;
CloseFile (F);
...
end;
Что-то типа того. Может есть какие ошибки т.к. не проверял
Здравствуйте puzzle, Вы писали:
P>Помогите, plzz!!! P>Необходимо произвести быстрое считывание и просмотр текстового файла на наличие к-л информации P>читаю посимвольно стандартной функцией delphi read в цикле, но получается ужасно долго P>я так понимаю надо загрузить весь файл в память(или его часть) в память и там уже производить все операции с ним P>но как это сделать быстро???