在我的德尔福西雅图10个应用程序,我读使用文本文件的文本文件(实际上是一个ini文件),如下:在Delphi使用文本文件的Android
SDPath := ClientUtils.GetSharedPath;
FileName := TPath.Combine(SDPath, 'Client.ini');
if not MemoVisible then
begin
Panel2.Visible := True;
if FileExists(FileName) then
begin
MemoConfig.Lines.Clear;
AssignFile(T, FileName);
try
Reset(T);
while not Eof(T) do
begin
ReadLn(T, text);
MemoConfig.Lines.Add(text)
end;
finally
CloseFile(T);
end;
end
我注意到,第一行包含[Configuration]
,另外3个不在原始文件中的字符。我猜这是从我的Windows 7 PC上部署client.ini文件时发生的。在我编辑完字符并保存文件后
AssignFile(T, FileName);
try
Rewrite(T);
for i := 0 to MemoConfig.Lines.Count -1 do
WriteLn(T, MemoConfig.Lines[i]);
finally
CloseFile(T)
end;
该文件保持正确。额外字符来自哪里,我能做些什么来阻止他们进入文件?
三个字节是一个BOM。一个字节顺序标记。你在Windows中使用了哪个编辑器? – greenapps
停止使用AssignFile和ReadLn并进入现代。您可以使用TStringList.LoadFromFile将整个文件读入TStringList,或使用TFileStream或TStringStream来读取它。事实上,你的备忘录可以使用'MemoConfig.Lines.LoadFromFile'直接加载它。 –
由于您可以在一次调用中直接加载文件内容,因此您的代码毫无意义。 –