想要将文件读取到TStringList

Rol*_*son 2 delphi file-io tstringlist

是的我想在TStringList中读取一个简单的日志文件,使用LoadFromFile可以轻松完成.但问题是该文件可能已被其他程序同时打开,因此可能会出现异常.我试过用:

FileMode := fmShareCompat;
Run Code Online (Sandbox Code Playgroud)

但它不会起作用.

我也试过用:

fFilePath := fPathList[PathIndex] + '\' + FileData.Name;
AssignFile(vFile, fFilePath);
Reset(vFile, 1);  // Recordsize = 1

SetLength(vFileString, FileData.Size);
BlockRead(vFile, vFileString, FileData.Size);   
vCurrentFile.Text := vFileString;
Run Code Online (Sandbox Code Playgroud)

它引发了一个带有消息I/O错误998的EInOutError.

有什么建议吗?

Dre*_*ejc 13

尝试LoadFromStream并执行以下操作:

fileStream := TFileStream.Create(aFileName, fmShareDenyNone);
myTStringList.LoadFromStream(fileStream);
fileStream.Free();
Run Code Online (Sandbox Code Playgroud)