Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: darione - Novembre 12, 2014, 03:27:17 pm
-
Ho un dubbio sul trattare il testo in unicode.
Questo codice
http://snag.gy/yJCc7.jpg
è il semplice codice in questione: giro su di una stringa 'aeìòù', dove volutamente compaiono caratteri accentati oggetto della discordia tra semplice ansi e unicode, e stampo i caratteri in una console application.
In Delphi il tipo "string" è visto come UTF16 e così l'accesso alla posizione di un carattere è semplice, tanto che apparentemente nulla cambia rispetto ad un ciclo fatto su di una stringa ascii. Facendo girare lo stesso codice identico in Delphi (io ho XE7 ma so gli unicode sono gestiti dalla versione 2009 in poi), anche la display sulla console è perfetta, non cambia nulla. Perché si tratta di UTF16 e windows lo usa nativamente, credo.
In lazarus accade quello che accade. Non che mi soprenda perché lo so che gli unicode sono gestiti differentemente tra lazarus e Delphi, ma mi chiedevo ...
La mia domanda è se in Lazarus c'è un modo ugualmente semplice di ciclare dentro una stringa unicode ... un modo equivalente di fare quel ciclo che ho fatto ...
Poi approfitto per chiedervi se a parere vostro c'è un approccio migliore in Delphi (>2009) o Lazarus per quanto riguarda gli unicode. Vorrei fare un programma di ricerca testuale e così mi chiedevo quale era la cosa migliore. Eventualmente se sapete se è possibile fare in modo che algoritmi che masticano stringhe unicode siano fatti in modo che compilino esattamene sia in Delphi che in Lazarus (chiaro, solo gli algoritmi dico...).
Grazie mille :-)
Darione
http://snag.gy/yJCc7.jpg
-
ancora non mi ci sono imbattuto :P
inizierei col dare un'occhiata
http://wiki.freepascal.org/LCL_Unicode_Support (http://wiki.freepascal.org/LCL_Unicode_Support)
e forse anche quà
http://wiki.freepascal.org/Console_Mode_Pascal#Unicode_.28UTF8.29_output (http://wiki.freepascal.org/Console_Mode_Pascal#Unicode_.28UTF8.29_output)
-
Grazie nomorelogic per i links. Quello per la console non lo avevo mai visto, l'altro abbondantemente ...
Nessun altro ha già sperimentato gli unicode in Lazarus per fare elaborazione del testo?
Darione