Umlaute?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Koloss
Beiträge: 20
Registriert: Mo 18. Sep 2017, 17:51

Umlaute?

Beitrag von Koloss »

Hallo,

ich lese eine ini-datei aus mit ini.readstring und bekomme es nicht hin die umlaute('ö', 'ä', usw) korrekt auszulesen und in ein label zu schreiben.
habe es mit utf8encode und utf8decode versucht.
RasPi 3 - Raspbian - Lazarus 1.9.0 - FPC Version 3.0.2 - SVN-Revision 55971 - arm-Linux-gtk2

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Umlaute?

Beitrag von theo »

Koloss hat geschrieben:Hallo,

ich lese eine ini-datei aus mit ini.readstring und bekomme es nicht hin die umlaute('ö', 'ä', usw) korrekt auszulesen und in ein label zu schreiben.
habe es mit utf8encode und utf8decode versucht.


Da müsste man wissen, welche Kodierung die Ini-Datei hat.

Koloss
Beiträge: 20
Registriert: Mo 18. Sep 2017, 17:51

Re: Umlaute?

Beitrag von Koloss »

Ich erstelle sie über lazarus mit:
ini := TiniFile.Create(path);
RasPi 3 - Raspbian - Lazarus 1.9.0 - FPC Version 3.0.2 - SVN-Revision 55971 - arm-Linux-gtk2

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Umlaute?

Beitrag von theo »

Da musst du gar nichts umwandeln.
So geht bei mir: (Lazarus 1.9.0 r57100 FPC 3.0.0 x86_64-linux-gtk2)

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
const Path='/home/theo/test.ini';
var
  ini: TIniFile;
begin
  ini := TiniFile.Create(Path);
  ini.WriteString('eins','test1','pöäeter');
  ini.Free;
  ini := TiniFile.Create(Path);
  Label1.Caption:=ini.ReadString('eins','test1','');
  ini.Free;
end;   

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Umlaute?

Beitrag von Mathias »

ich lese eine ini-datei aus mit ini.readstring und bekomme es nicht hin die umlaute('ö', 'ä', usw) korrekt auszulesen und in ein label zu schreiben.

Ist diese eine bestehende INI-Datei, oder hast du sie selbst mit deinem Programm erzeugt ?
Wen sie mit einem Fremd-Programm erzeugt wurde, kann es schon ein Kodierungs-Problem sein.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Umlaute?

Beitrag von theo »

Mathias hat geschrieben:
ich lese eine ini-datei aus mit ini.readstring und bekomme es nicht hin die umlaute('ö', 'ä', usw) korrekt auszulesen und in ein label zu schreiben.

Ist diese eine bestehende INI-Datei, oder hast du sie selbst mit deinem Programm erzeugt ?
Wen sie mit einem Fremd-Programm erzeugt wurde, kann es schon ein Kodierungs-Problem sein.


Hat er doch oben schon gesagt? :roll:

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Umlaute?

Beitrag von Mathias »

Hat er doch oben schon gesagt? :roll:
Es kommt darauf an, wie man es interpretiert. Zuerst schreibt er, "eine". Weiter unten hat er ein "Create", aber dies braucht mach auch nur um zu lesen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: Umlaute?

Beitrag von compmgmt »

Du hast die INI-Datei wahrscheinlich mit dem Windows Editor erstellt. Um das bestehende Problem zu lösen, Datei mit dem Editor öffnen -> Speichern unter -> "UTF-8" ganz unten auswählen -> Speichern und alte Datei überschreiben. In Zukunft dann am besten durch Lazarus mittels TIniFile.Create() erstellen lassen.

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Umlaute?

Beitrag von Mathias »

In Zukunft dann am besten durch Lazarus mittels TIniFile.Create() erstellen lassen.

Noch besser, wen es irgendwie geht, versuche ich bei solchen Sachen auf Umlaute zu verzichten. Dazumal mit Turbo-Pascal meinte man auch wen man öäü verwendete, das dies in 20 Jahre immer noch problemlos geht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Umlaute?

Beitrag von theo »

Mathias hat geschrieben:Noch besser, wen es irgendwie geht, versuche ich bei solchen Sachen auf Umlaute zu verzichten.

Genau! https://www.youtube.com/watch?v=Oqcl_3WbLIo

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: Umlaute?

Beitrag von MacWomble »

Habe meinen Beitrag gelöscht, da falscher Thread
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Antworten