[Allegro] a99/alcarta jetzt ANSI-faehig

Bernhard Eversberg ev at biblio.tu-bs.de
Di Dez 20 08:35:21 CET 2005


Oberflächen-Umcodierungen in a99/alcarta
----------------------------------------
Jetzt voll ANSI-fähig                                   2005-12-20

Das Wichtigste zuerst: Normalanwender brauchen nichts zu tun!
Aber auch WENN sie sich die neuen Programme a99/alcarta holen,
fallen keine Änderungen an irgendwelchen Dateien an.

Wer jedoch mit ANSI oder sonstigem internen Code arbeiten will,
nicht mehr mit DOS-ASCII, der muß sich die neuen Programme holen.
Ganz unten steht, was zu tun ist - denkbar wenig!

Der Bedarf für internes Arbeiten mit ANSI statt ASCII manifestiert
sich. Das neue Neutralmodell soll z.B. mit ANSI arbeiten können!
Im Zentrallabor, wo das Kernsystem betreut wird, wurde deshalb
eine Checkliste aufgestellt und abgearbeitet. Im Ergebnis haben wir
nun durchgängig korrekt arbeitende Programme, sofern nur
minimale Voraussetzungen gegeben sind (siehe am Ende dieses Beitrags).

Es folgt die Checkliste:

Die sichtbaren Elemente sind ausnahmslos auf ANSI angewiesen, vom
Anzeigefeld bis zur kleinsten MessageBox.
Es sind also Tabellen nötig, die zwischen dem tatsäch-
lichen Code der involvierten Daten und ANSI in beiden Richtungen
codieren (manchmal nur in einer, z.B. MessageBoxen, Menüs,
Button-Aufschriften). Diese Aufgaben werden hier aufgelistet
und präzisiert.

Die mit (x) gezeichneten Bereiche sind geprüft und abgehakt, d.h. die
nötigen Änderungen in den Programmen sind gemacht und getestet.

Abkürzungen:
   AS  = ASCII mit OstWest-Zeichensatz,
   AN  = ANSI mit OstWest-Zeichensatz
   INT = intern verwendeter Code, falls beides nicht zutrifft,
         D.h. Intern kann ein von ANSI und ASCII abweichender Code
         verwendet werden, es muß nicht  INT=AN  sein.

Eine "ASCII-Datei" ist eine im ASCII-Code geschriebene. Fast alle
Standard-Textdateien sind ASCII! Ausnahme: UIFE... ist ANSI (das ist
aus internen Gründen nicht zu ändern).


Rezept für die o-Befehle (s.a. am Ende):
A) Index-Parameter : Abbildung zwischen INT und AN
B) Anzeigeparameter: Abbildung zwischen AS und AN


1. Anzeigefeld: (x)
    a) Anzeigeparameter brauchen p/q-Befehle für  INT -> AN
       Damit funktionieren dann auch Flips mit Umlauten!

    b) ASCII-Datei  zeigen       AS -> AN
                    speichern    AN -> AS
       Kategorie-Hilfetexte (Hnnn) fallen auch hierunter, obwohl
       sie in einer MessageBox erscheinen.

2. Auswahlfeld: (x)
    Daten anzeigen           INT -> AN
       Datenfelder
       Reserve
       CFG-Felder     (d.h. auch CFG muß weiterhin ASCII sein!)
       Abfrageliste

3. Eingabefeld (Schreibfeld),  (x)
    Befehlszeile  (x)
    Formulare (x)
    Was man eingibt, ist immer ANSI, was hier angezeigt werden soll,
    ist im internen Code (Kategorieinhalte)! Also:
                          INT -> AN
                           AN -> INT

4. Indexfenster (x)
       In den Registereinträgen selbst sollten möglichst
       keine Sonderzeichen vorkommen, schon wegen der Ordnung.
       WENN es aber der Fall ist, sieht es so aus:
       Registerdaten      INT -> AN
       Eingabe             AN -> INT
       Überschriften in den Parametern: müssen INT sein.

5. ViewListe (x)
       Achtung: Text der Standardlisten ist ASCII, etwas anderes
       geht deshalb zur Zeit nicht. (wie z.B.  FLEX.VW und QUICK.VW)
       Darauf ist beim Erzeugen eigener ViewListen zu achten.

         Anzeige  :        AS -> AN
         Suchfrage:        AN -> AS

6. Ergebnisliste, Text stammt aus STL-Datei (x)
       Text der STL-Zeilen ist INT
                          INT -> AN
         Suchfrage         AN -> INT

7. aresqa-Liste (x)
       Dieses Fenster kann ANSI und ASCII anzeigen!
       (siehe doku:  h xaresqa )
       Wenn Datei ASCII ist, konvertiert es nach ANSI
             Eingabe dann  AN -> AS
       sonst keine Konvertierung!

8. Fernglas-Formular (x)
       Was man hier eingibt, ist ANSI, gebraucht wird INT
                          INT -> AN
                           AN -> INT

9. CFG, Abfrageliste und Formulardatei sind sinnvollerweise INT ! (x)
                  also    INT -> AN
                           AN -> INT

10. FLEXe (x)
     Wenn im FLEX ein Befehl  var "..."  auftritt, und was zwischen
     "..." steht in ASCII codiert ist, dann muß man, bevor ein
     message-Befehl kommt, noch "ansi" sagen. Diese Umcodierung muß
     also gemäß der Abbildung  AS <-> AN  erfolgen.


Was ist zu tun, wenn man intern nicht mit ASCII arbeiten will?

A) Damit die Fälle  INT <-> AN funktionieren, muß es o-Befehle
geben, die den tatsächlich verwendeten Code nach ANSI abbilden.
Wenn intern mit ANSI gearbeitet wird, gibt es keine o-Befehle!
Diese Befehle gehören in die Indexparameter.
Empfehlung: o-Befehle für  INT <-> AN  in eine Datei o.xpt
Dann in die eigenen INDEX-Parameter diesen Befehl:
to

B) Damit die Fälle AS <-> AN funktionieren, muß es eine o-Datei
geben, die der originalen o.apt entspricht. Diese ist in die Anzeige-
parameter einzubinden - dort werden o-Befehle ansonsten nicht
gebraucht, sind also nebenwirkungsfrei.
Empfehlung:  Kopie machen mit dem Namen oasci.xpt  (x = eigene CFG)
Dann in die eigenen ANZEIGEparameter einbauen:
toasci

Ebenfalls leicht zu merken: alle CFG-, Parameter- und Hilfetexte (Hnnn)
müssen ASCII sein, auch ViewListen. Zum Bearbeiten nimmt man WinVi
(der kann umschalten) oder edit (falls man X verschmäht).





Mehr Informationen über die Mailingliste Allegro