在我的德爾福西雅圖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'直接加載它。 –
由於您可以在一次調用中直接加載文件內容,因此您的代碼毫無意義。 –