Советы по Delphi

Чтение из файла длинной строки


Для решения этой задачи на помощь можно призвать потоки (TFileStream, TMemoryStream). Для поиска конца строк нужно искать пары CR/LF, но это делается очень легко, приблизительно так (я сегодня вечером слишком ленивый для реального кода):

    Start := Stream.Position;
End := Start;
Repeat
Stream.Read(Buffer^, 1024); CRPos := FindCR(Buffer^);   { где FindCR возвращает 0..1023 для CR, и 1024, если он не найден} Inc(End, CRPos); Until CRPos < 1024;
GetMem(MyPChar, End - Start);  { Здесь может быть +-1 -- мне лень сегодня проверять! } Stream.Seek(Start);
Stream.Read(MyPChar^, End - Start)

Затем установите CR в конце MyPChar в 0, и сделайте Seek в конец (End + 1), или что-то еще, чтобы пропустить LF.

LazyMan [001703]



Содержание раздела