如何解决在Delphi 7中加载CR仅分隔文件文本时的问题?

Kaw*_*hii 6 delphi delphi-7 text-files

我有一个大文本文件(大约100MB),每行由CR字符分隔,而不是CRLF.

我尝试使用TStringList.LoadFromFile()或ReadLn(F,..)逐行读取此文本文件,但这两种方法都要求行由CRLF分隔.

你有没有有效和快速的方法来阅读这种文本文件?

谢谢.

PS:我使用的是Delphi 7.

LU *_* RD 8

这应该做到这一点.将文本文件读入内存流.然后用内容填充字符串列表. textList.Text接受任何组合CR,LFCRLF形成一条线.

function MemoryStreamToString( M : TMemoryStream) : string;
begin
  SetString( Result,PChar(M.Memory),M.Size div SizeOf(Char)); // Works in all Delphi versions
end;

var
  memStream : TMemoryStream;
  textList  : TStringList;
begin
  textList := TStringList.Create; 
  try
    memStream:= TMemoryStream.Create;
    try
      memStream.LoadFromFile('mytextfile.txt');
      textList.Text := MemoryStreamToString( memStream);  // any combination of CR,LF,CRLF interprets as a line
    finally
      memStream.Free;
    end;
    // do something with textList

  finally
    textList.Free;
  end;

end;
Run Code Online (Sandbox Code Playgroud)