Вы можете открыть файл для чтения с помощью класса TFileStream вот так ...
FileStream := TFileStream.Create( 'MyBigTextFile.txt', fmOpenRead)
TFileStream не является объектом с подсчетом ссылок, поэтому обязательно отпустите его, когда закончите, например ...
FileStream.Free
С этого момента я буду предполагать, что кодировка символов вашего файла - UTF-8, а завершение конца строки - в стиле MS. В противном случае внесите соответствующие изменения или обновите свой вопрос.
Вы можете прочитать одну кодовую единицу символа UTF-8 (это не то же самое, что чтение одного символа) следующим образом:
var ch: ansichar;
FileStream.ReadBuffer( ch, 1);
Вы можете прочитать такую строку текста ...
function ReadLine( var Stream: TStream; var Line: string): boolean;
var
RawLine: UTF8String;
ch: AnsiChar;
begin
result := False;
ch := #0;
while (Stream.Read( ch, 1) = 1) and (ch <> #13) do
begin
result := True;
RawLine := RawLine + ch
end;
Line := RawLine;
if ch = #13 then
begin
result := True;
if (Stream.Read( ch, 1) = 1) and (ch <> #10) then
Stream.Seek(-1, soCurrent) // unread it if not LF character.
end
end;
Чтобы прочитать строки 2, 3 и 4, предполагая, что позиция находится в 0 ...
ReadLine( Stream, Line1);
ReadLine( Stream, Line2);
ReadLine( Stream, Line3);
ReadLine( Stream, Line4);
person
Sean B. Durkin
schedule
22.07.2012