[Allegro] Vb.271 : V35.7 ist da
Thomas Berger
ThB at Gymel.com
Di Jul 28 13:12:36 CEST 2015
Lieber Herr Eversberg,
> Zum Thema "Unicode intern"
> --------------------------
>
> Es soll mit V35.8 eine neue DemoBank geben, die intern in UTF-8 codiert
> ist, was auch bisher schon ging, nun aber mit etwas mehr Unterstuetzung
> in einigen wichtigen Funktionen.
> Was weiterhin und auch in Zukunft NICHT gehen wird, ist die Anzeige von
> UTF-Daten im Auswahlfeld, Schreibfeld, Befehlszeile und in den
> Formularen, vom Index gar nicht erst zu reden. Die dafür notwendigen
> Umstellungen der Kernprogramme sind nicht zu leisten, wie wir schon
> früher definitiv festgestellt hatten, um unrealistische Hoffnungen
> gar nicht aufkommen zu lassen.
Moment: Es ging um die Fenster oder Widgets, die auf 8bit-Zeichen
vorbereitet sind (und natuerlich gibt es davon seit Jahrzehnten
auch Unicode- bzw. "Wide character"-Versionen, allerdings 16bittige,
d.h. UTF-8 muesste in UCS-2/UTF-16 hin und zurueck gewandelt werden,
das hoert sich nicht unbedingt unloesbar an, eher noch die daran
haengenden Probleme mit der Font-Auswahl).
Weil a99 fuer 8bit-Daten staendig zwischen 8bit-"DOS"-Zeichensatz und
8bit-"Windows"-Zeichensatz umsetzt, speziell wenn es um Index,
Kurliste, Schreibfeld und Auswahlfenster geht, sehe ich keine
grosse Schwierigkeit, im Fall von UTF-8-Daten ("CU" in der .CFG,
nicht wahr?) dieses UTF-8 in die konkrete Codepage des Rechners
umzusetzen - es sind exakt dieselben Stellen, die eine Umwandlung
erfordern, nur andere Mechanismen oder Tabellen.
Das nicht umsetzbare waere wie gewohnt als &#nnn; zu escapen - damit
waeren dann die "normalen" Zeichen weiterhin wie bisher eingebbar,
was entfaellt waeren nur die isolierten Diakritika des Ostwest-Fonts
(das sind beileibe nicht alle, die Unicode kennt), und dafuer
koennte man sich einen Escape-Mechanismus einfallen lassen.
> Im Anzeigefeld kann dagegen UTF-Text korrekt erscheinen, weil dies
> ein RTF-Feld ist, und ein solches ermöglicht die Anzeige, wenn die Daten
> in bestimmter Weise codiert sind, siehe unten 6..
>
> VERSUCHSWEISE koennen Neugierige schon mal ihre A-Datenbank in eine
> Version mit UTF-8 intern umwandeln. Keine Angst, die eigenen Daten
> bleiben unangetastet, es wird ein neuer Ordner angelegt.
> Starten Sie mit X unify, dann wird nach dem Ordnernamen gefragt.
> Dann wird alles nach dort exportiert in UTF-8, und indexiert.
> Die nötigen Parameter werden in V35.7 mitgeliefert im Verzeichnis
> ProgDir\uparam. Die werden dann mit zur Datenbank kopiert.
> Haben Sie etwa den Ordner d:\daten\unikat gewaehlt, dann starten
> Sie die neue Datenbank mit a99 d:\daten\unikat\cat
> (die cat.ini ist auch in uparam mit dabei)
Es gibt haessliche Fehlermeldungen, anscheinend testen Sie solche
Sachen nur so, wie man verabredungsgemaess *niemals* mit allegro
arbeiten soll, naemlich mit Programmvereichnis = Arbeitsverzeichnis.
Jedenfalls funktioniert die Umwandlung mit der Demodatenbank aus
einer frisch installierten V35.7 nur, wenn man in der erzeugten
.bat-Datei (noch etwas, das verabredungsgemaess nicht mehr passieren
soll!) noch das Programmverzeichnis setzt.
Kleinerer Bug: Im Rename-Statement ist ein Leerzeichen zu viel.
viele Gruesse
Thomas Berger
Mehr Informationen über die Mailingliste Allegro