Das ewige Thema mit den Umlauten

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Das ewige Thema mit den Umlauten

Beitrag von Hercules »

Hallo an alle hier im Forum.
Hab' mal wieder ein Problem und zwar mit Umlauten.
Ich muss aus einem String mit dem Copy-Befehl bestimmte Stellen auslesen.
Beispiel:
In einem String A steht folgender Text: 'Änderungsdatum:16.01.2010'.
Ich möchte nur das Datum aus diesem String A nach String B bringen.
A: String;
B: String;
B:=Copy (A,16,10);
danach steht im String B leider nicht '16.01.2010' sondern ':16.01.201'
Das ist wohl deshalb so, weil ein Umlaut 2 Stellen belegt und dadurch alles verschoben wird.
Hat jemand eine Idee wie man das lösen könnte?
Dank schon mal vorweg, Hercules.

martin_frb
Beiträge: 597
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Das ewige Thema mit den Umlauten

Beitrag von martin_frb »

LCLProc.UTF8Copy

Schau dir mal die LCLProc unit an, da sind jede Menge utf8 helfer

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Das ewige Thema mit den Umlauten

Beitrag von Hercules »

Hallo Martin, danke für den Hinweis, hab' die Unit gefunden, muß mich da mal durchwühlen.
Danke und noch schönen Tag.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Das ewige Thema mit den Umlauten

Beitrag von Socke »

String[] und Copy() arbeiten auf Byte-Basis. Wenn du also UTF-8 verwendest, ist dein 'Ä' genau zwei Byte lang.

Code: Alles auswählen

B := Copy(A,17,10);
// oder etwas universeller
i := pos(':',A);
B := Copy(A,i+1,Length(A)); // kopiert immer den Rest
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Hercules
Beiträge: 104
Registriert: Mi 2. Jun 2010, 17:56
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Das ewige Thema mit den Umlauten

Beitrag von Hercules »

Hallo Socke,
danke für Deine Vorschläge.
Daran hab' ich noch garnicht gedacht, ich glaube so geht's!
Danke und Schönen Tag noch!
M.f.G. Hercules

Antworten