Unterschiede: Delphi<>Lazarus TInifile und Stringfunkt

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Knifflige Sache, ich weiss...

Probier mal sowas

var Ws:WideString;
..
Ws:=UTF8Decode(h);
if Ws[1]=WideChar(186) then

Targion
Beiträge: 688
Registriert: Mi 3. Okt 2007, 21:00
OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
CPU-Target: x86_64

Beitrag von Targion »

Das bringt leider auch keinen Erfolg! Unter Windows und MacOS habe ich das selbe Problem. Aber Ws[1] zeigt, wenn ich es in ShowMessage() stelle ein "?" an.
Wenn ich allerdings mit einem StringReplace alle ° ersetze geht's. (Meine Funktion funktioniert deshalb immernoch nicht, aber das kann ja noch werden ;-))
Danke für die Hilfe!

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

Beitrag von theo »

Darauf was ShowMessage anzeigt kannst du dich leider auch nicht verlassen.
Wenn dein String also UTF-8 kodiert ist, dann kann intern alles stimmen, aber ShowMessage kann mit dem UTF-8 String z.B. unter Windows trotzdem nichts anfangen.
Unter Win nimmst du dann besser direkt Winapi's MessageBoxW und machst vorher ein UTF8Decode.

Du musst einfach bei jedem Schritt genau überlegen was Sache ist.
Wie kommen die Daten rein?
Wie verarbeite ich sie intern (am einfachsten WideString)
Wie muss ich sie ans Interface senden?
Wenn du noch Zeichen > 127 in den Editor schreibst (nicht zu empfehlen) musst du auch noch wissen was der damit anstellt.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Oder man compiliert das Win32 Interface mit UnicodeEnabled
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten