wie lese ich Daten mit Umlauten richtig ein?
Ich komme weder bei readln() noch per loadfromfile() oder readstrings() damit zurecht. Vermutlich liegt es daran, dass FPC Strings nicht automatisch als WideStrings behandelt, die Implementierung jeweils aber als String erfolgt (readln(<file>,<widestring>) geht gar nicht). Muss ich nun inifiles.pp neu programmieren?

Zielplattform soll Windows und Linux sein, ich arbeite unter Ubuntu.
test.txt:
Code: Alles auswählen
[Text]
1=ABC
2=ÄBC
3=ÄÖÜ
4=XYZ
5=äbc
6=xyz
Code: Alles auswählen
if opendialog1.execute then
begin
assignfile(tmp,opendialog1.filename);
reset(tmp);
memo1.lines.clear;
while not eof(tmp) do
begin
readln(tmp,s);
memo1.lines.add(s);
end;
closefile(tmp);
end;
Code: Alles auswählen
if opendialog1.execute then
with TStringList.Create do
try
LoadFromFile(OpenDialog1.FileName);
while Count>0 do
begin
Memo1.Lines.Add(Strings[0]);
Delete(0);
end;
finally
Free;
end;
Code: Alles auswählen
if OpenDialog1.Execute then
begin
sl:=TStringList.Create;
with TIniFile.Create(OpenDialog1.FileName) do
try
ReadSectionValues('Text',sl);
while sl.Count>0 do
begin
Memo1.Lines.Add(sl[0]);
sl.Delete(0);
end;
finally
Free;
sl.free;
end;
end;
Code: Alles auswählen
[Text]
1=ABC
4=XYZ
6=xyz
Code: Alles auswählen
[Text]
1=ABC
2=?BC
3=???
4=XYZ
5=?bc
6=xyz