[Allegro] A99, Classico und Zeichensätze

Thomas Berger ThB at Gymel.com
Fr Jul 3 12:47:02 CEST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Fischer, liebe Liste,

> Noch wesentlicher ist aber zum dritten die strukturelle Frage (und die wird
> durch neue FLEX&Flex-Entwicklungen nicht überflüssig, sondern wird sich da
> vermutlich noch klarer stellen).
> Meine Grundthese ist, dass Konfiguration und Zeichensatz voneinander
> unabhängig sind (bzw. sein sollten).
> Hier bitte ich um Widerspruch, wenn jemand das grundsätzlich anders sieht.

Eine "Konfiguration" legt die Semantik der vorkommenden Datenfelder
(idealerweise) absolut fest. (Anwender werden zu eigenmaechtigen
/Erweiterungen/ animiert, "Umwidmungen" bestehender Datenfelder sind
aber extrem problematisch. Es gibt eine Abhaengigkeit zwischen
Datenfeldern und den Paradigmen des vom Anwender benutzten Regelwerks
(RAK, "RAK, so wie ich mich dran erinnere", Hausregeln), die manchmal
etwa dazu fuehren kann, dass etwas zur Koerperschaft wird oder nicht,
die meisten Abweichungen sind aber syntaktisch (Ansetzungsregeln) oder
auf Ebene der Entitaeten (genauere Konsultation der GKD haette ergeben,
dass diese Koerperschaft eine ganz andere ist).

Die Zeichencodierung legt die Semantik der in den Daten auftretenden
Bytes fest und ist damit auch fundamental, vergleichbar etwa mit
den Festlegungen "t2,k4" und weiteren bezueglich Feldnummernlaengen,
Indikatorpositionen, Unterfeldsteuerzeichen, die traditionell in der/den
.CFG-Dateien hinterlegt sind (bzw. im Datensatz-Header von ISO-2709-
verpackten Daten). Weil es im Bereich der 8-Bit-Zeichensaetze nur
beschraenkten Platz gibt, wurden Anwender leider oft ermutigt, sich
eigene Zeichensaetze per Umdefinition des vorhandenen zu schaffen, ich
fand das schon immer problematisch, denn die Bedeutung der Daten war
stellenweise nur durch die visuelle Praesentation irgendeiner TSR-Helper-
Applikation "definiert", die nur ueber ein kompiliertes Menuesystem
aktiviert wurde, das die letzte Systemumstellung nicht ueberlebt hatte...
[aber auch bei gaengigeren Zeichensaetzen gab es Ueberraschungen, das,
was in CP850 alle fuer "gamma" hielten, da ja "alpha" und "beta (sz)"
vorhanden waren, war in Wirklichkeit ein "tau", wie die von Microsoft
veroeffentlichten Unicode-Konkordanzen 10 Jahre spaeter offenbarten]


[...]
> Der benutzte Zeichensatz sollte in der Konfigurationsdatei festgehalten
> werden

Logisch gehoert er dort hin.

Ich nehme das im Gegensatz zu Ihnen nun als Argument dafuer, dass der
Zeichensatz an die Konfiguration "gebunden" ist.

Nun kann ich natuerlich x .CFG-Dateien haben, die alle mit "A" oder "$A"
beginnen. Alle Parameterdateien .apr/.aim etc. sollten eigentlich dazu
passen, d.h. wenn eine der Konfigurationsdateien abweichende Werte fuer
Feldnummernlaengen oder Indikatorpositionen haette, waere das eine
ueble Ueberraschung, die Parameterdateien wuerden sich u.U. ganz
anders als geplant verhalten.

So sehe ich das auch bezueglich der Zeichencodierung: Jeder Text in
direkten Praefixen in den Parameterdateien zum A-Schema ist implizit
als genau so zeichencodiert aufzufassen, als waere er Bestandteil der
eigentlichen Daten: also DOS-Ostwest. Jede Umstellung der Daten auf
einen anderen Zeichensatz wuerde tendenziell abweichende Parameterdateien
benoetigen.

Abhilfe scheint mir nur dadurch moeglich (ganz theoretisch), dass jede
Parameterdatei auch noch sagt, in welcher Codierung sie *geschrieben*
ist und die allegro-Module intern auch diesen Zeichensatz mit geeigneten
Parametern mappen. Das ist realistisch, wenn allegro intern sowieso
alles zu lesende von xyz nach Unicode und alles auszugebende (zurueck
in die Datenbank, zum Benutzer) von Unicode nach abc umwandelt. Dafuer
gibt es natuerlich freie Bibliotheken, setzt aber voraus, dass Benutzer
nicht mehr adhoc eigene Zeichensaetze schaffen duerfen, ausser sie
definieren ein Unicode-Mapping ...

Also: Solange allegro nicht wirklich virtuos und tief integriert alle
in einer Installation genutzten Zeichensaetze on the fly ineinander
umwandelt, sollte der Konfigurations-Grundbuchstabe wie bisher auch
die Zeichencodierung determinieren: Etwa Ostwest fuer $A und $M und
"Namenlos-allegro-Windows" fuer $N.

viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBSk3hpmITJZieluOzAQKkXQP/X49gqcLZEbalvoNBhmsgQpxMLfdk7t0r
sX313UBzfPKmU0WXlbfk6UZ+yXGVg1jmnNPSBu0zF9rd5tUr7vJvif8Q8HN6dyI9
9tXoeYt1Or7ZOyK42ougIiuyeOlE+akaayBkTNezPGuJWujWvSQIrFveY1/+4E3N
+wzc1la4SCU=
=MJDa
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro