В моей программе есть функция «Найти файлы», которая находит текстовые файлы с суффиксом .ged, которые читает моя программа.Я отображаю найденные результаты в похожем на проводник окне, которое выглядит следующим образом:
Я использую стандартные методы FindFirst / FindNext, и это работает очень быстро.584 файла, показанные выше, найдены и отображены в течение нескольких секунд.
Теперь я хотел бы добавить на экран два столбца, которые показывают «Источник» и «Версия», содержащиеся вкаждый из этих файлов.Эта информация обычно находится в первых 10 строках каждого файла, в строках, которые выглядят следующим образом:
1 SOUR FTM
2 VERS Family Tree Maker (20.0.0.368)
Теперь у меня нет проблем с самоанализом, и это не то, о чем я спрашиваю.
Мне нужна помощь в том, чтобы просто как можно быстрее загрузить первые 10 или около того строк из этих файлов, чтобы я мог их проанализировать.но загрузка больших файлов занимает слишком много времени, например, при объеме более 1 МБ.
Поскольку мне нужны только первые 10 строк или около того, как мне их лучше всего получить?
Я использую Delphi 2009, и мои входные файлы могут быть или не быть Unicode, так что этодолжен работать для любой кодировки.
Продолжение: Спасибо Антонио,
Я закончил тем, что сделал это, что отлично работает:
var
CurFileStream: TStream;
Buffer: TBytes;
Value: string;
Encoding: TEncoding;
try
CurFileStream := TFileStream.Create(folder + FileName, fmOpenRead);
SetLength(Buffer, 256);
CurFileStream.Read(Buffer[0], 256);
TEncoding.GetBufferEncoding(Buffer, Encoding);
Value := Encoding.GetString(Buffer);
...
(parse through Value to get what I want)
...
finally
CurFileStream.Free;
end;