utf8 findfirst bzw. pascal script

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

utf8 findfirst bzw. pascal script

Beitrag von lrlr »

hallo

(bin immer noch begeistert wie einfach es ist (einfache) delphi programme->lazarus) ABER:

UTF8:

ich verwende FindFirst (funktioniert)
wollte ich "sicherheitshalber" FindFirstUTF8 verwenden (in der hoffnung dass es "plattformunabhängiger" wäre..)
aber: es funktioniert nicht, FindFirst liefert bei mir schon (korrekt) UTF8
FindFirstUTF8 hingegen convertiert (scheinbar) nochmal von UTF8 -> UTF8...

GetACP liefert: 1252 windows-1252 ANSI Latin 1; Western European (Windows)

ich hab Windows7, die daten sind auf einer externen USB festplatte mit NTFS...

2. problem:

pascal script: in einer (vom script) aufgerufenen procedure, wir eine exception ausgelöst, (mit umlaut im text)
dieser text wird (scheinbar) irgendwo nach ansi convertiert, und dann im "debug-fenster" von meiner anwendung natürlich falsch angezeigt..
(da wird also "zuviel" convertiert)

3. prolem:
wo hingegen convertiert werden sollte, und NICHt convertiert wird ist, die ausgabe einer exception in der console (da wird utf8 ausgegeben, was die console natürlich nicht versteht...)

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: utf8 findfirst bzw. pascal script

Beitrag von monta »

Einiges sollte sich mit UTF8Encode bzw. UTF8Decode beheben lassen, zum Beispiel das Konsolenproblem.
Johannes

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: utf8 findfirst bzw. pascal script

Beitrag von lrlr »

alles lässt sich irgendwie beheben ;-)

(aber wohl eher mit UTF8toSys)...

aber (vorallem) beim konsolenproblem, wo ICH ja keinen einzige zeile code schreibe, die mit der ausgabe zu tun hätte,
bin ich der meinung dass das irgendwo im lazarus code "behoben" werden müsste..

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: utf8 findfirst bzw. pascal script

Beitrag von lrlr »

wegen console:

lazarus->neu->konsolenanwendung

im DoRUn 1. zeile:
raise Exception.Create('Hällo');

speichern
F9


(die anderen 2 probleme wären mir eigentlich ein größeren anliegen, wo ich auch bereit wäre selber was im code zu ändern, um die zeit zu überbrücken bis es im freepascal utf8/unicode support gibt..)

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

Re: utf8 findfirst bzw. pascal script

Beitrag von theo »

lrlr hat geschrieben: (die anderen 2 probleme wären mir eigentlich ein größeren anliegen, wo ich auch bereit wäre selber was im code zu ändern, um die zeit zu überbrücken bis es im freepascal utf8/unicode support gibt..)
Was willst denn du jetzt eigentlich genau wissen?
Du sagst ja "FindFirst liefert bei mir schon (korrekt) UTF8".
Wenn du wissen willst warum, musst du's halt mal unter die Lupe nehmen. Das gleiche gilt für Pascalscript.

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: utf8 findfirst bzw. pascal script

Beitrag von lrlr »

weil ich lazarus seit 2 wochen verwende und der hoffnung/meinung bin/war das es vielleicht leute gibt die schon länger "dabei sind" und vielleicht das selbe problem hatten...

{warum FindFirst bereits utf8 liefert, weiß ich nicht, ich vermute mal dass das filesystem utf8 verwendet..}

das herauszufinden ist für mich (noch) etas mühsam, ich kämpfe noch ziemlich mit dem debugger, der steht die halbe zeit im CPU-view anstelle vom sourcecode.. wenn man da delphi gewohnt ist, ist das alles ... naja..

edit: das mit FindFirst hat sich erledigt, FindFirstUTF8 liefer UFT8 (genausso wie es soll)
ich war (extrem) verwirrt, weil der debugger von lazarus scheinbar mit utf8 (auch) nicht klarkommt.?!
bei

fns := 'aäö';

wenn ich mit der maus darauf fahre wird nicht 'aäö' angezeigt....

ich mach das jetzt so: dateinamen werden im "system" zeichensatz belassen
(weil z.b. auch TMemIniFile usw. michts mit UTF8 anfangen kannn...)
und nur vor der ausgabe in einen label usw. umgewandelt..

entgegen meiner ursprünglichen meinung, lazarus würde immer alles als UFT8 ansehen und nur "system" funktionen würden ANSI liefer, ist das leider nicht so, der debugger kann es nicht, und grundlegende objekte wie z.b. TMemIniFile usw.
ReadFromFile() usw. wohl auch nicht


bei der pascal script frage, bin ich mir noch nicht sicher wer das überhaupt "schuld" ist lazarus/pascalscript/freepascal usw. ...
ich werd mal im pascalscript mailingliste fragen:
Zuletzt geändert von lrlr am So 22. Nov 2009, 15:58, insgesamt 1-mal geändert.

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

Re: utf8 findfirst bzw. pascal script

Beitrag von theo »

lrlr hat geschrieben: das herauszufinden ist für mich (noch) etas mühsam, ich kämpfe noch ziemlich mit dem debugger, der steht die halbe zeit im CPU-view anstelle vom sourcecode..
Das kann man in neuerdings auch ausschalten in trunk:
http://www.mail-archive.com/lazarus@lis ... 03223.html" onclick="window.open(this.href);return false;

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: utf8 findfirst bzw. pascal script

Beitrag von lrlr »

trunk vom lazarus werd ich mir nicht antun, aber danke

(FindFirstUTF8 hat sich erledigt, siehe mein edit oben)

Antworten