Sim*_*mes 6 delphi delphi-7 text-files
我正在尝试打开一个文本文件,以便在Delphi 7应用程序中读取,但是由于另一个应用程序已经打开了文件,因此会出现I/O错误32(共享冲突).我已经尝试将FileMode设置为"fmOpenRead或fmShareDenyNone",但现在意识到这不适用于文本文件.
有没有办法读取其他应用程序打开的文本文件?
var
f: TextFile;
begin
FileMode := fmOpenRead or fmShareDenyNone; // FileMode IS NOT APPLICABLE TO TEXT FILES!!
AssignFile(f, FileName);
Reset(f);
Run Code Online (Sandbox Code Playgroud)
Ian*_*oyd 12
使用LoadFromStreamTStringList 的方法,而不是LoadFromFile.你可以通过这种方式控制锁定:
var
slFile: TStrings;
stream: TStream;
begin
slFile := TStringList.Create;
try
stream := TFileStream.Create(filename, fmOpenRead or fmShareDenyNone);
try
slFile.LoadFromStream(stream);
finally
stream.Free;
end;
//Use the stringlist
finally
slFile.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
该示例使用流加载到TStringList.如果你只想阅读作品,你可以这样做.只需从流中读取即可.
这将立即解决您的问题。使用 TStringList 加载文件。只需致电:
...
var sl: TStringList;
begin
sl := TStringList.create();
try
sl.loadFromFile(Filename);
...do your stuff here...
finally
freeAndNil(sl);
end;
end;
Run Code Online (Sandbox Code Playgroud)
我发现处理文本文件,最好使用TStringList。否则我会选择 TFileStream,你可以在那里指定你的打开模式。