Seltsames Detail um get/ansi/ins/write herum
Thomas Berger
ThB at gymel.com
Mo Feb 9 11:55:40 CET 2004
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Lieber Herr Eversberg,
| Was passiert beim FLEX-Befehl "ins #nnn" ?
| Wenn wir den momentanen Inhalt der internen Variablen mal iV nennen, dann:
|
| 1. Es wird #nnn iV gebildet und so uebergeben, als haette
| man dieses von Hand eingetippt
| Wenn man was von Hand eintippt, ist es aber ANSI! Ein FLEX
| ist jedoch, nimmt das Programm als Default an, ASCII.
| (Durch Setzung von set c1 kann man das aendern!)
| Also wandelt es den iV-Inhalt zuerst automatisch in ANSI und uebergibt
| das dann an die Eingabeverarbeitung.
und die Eingabeverarbeitung wandelt es sofort zurueck nach
ASCII.
D.h. es ist wäre Unterschied, ob ich "ohne Flex"
#nnn äöü
eingebe oder
x var "äöü"\ins #nnn
Ist es aber nicht, weil die Eingabezeile "x ..." zunaechst nach
ASCII verwandelt wird. Dann wird der Flex abgearbeitet und
beim ins-Befehl noch einmal leer nach ANSI und zurueck gewandelt.
D.h., es ist nicht moeglich, beliebige Inhalte einzulesen und
in Variablen zwischenzuspeichern, selbst wenn diese keine
allegro- oder sonstigen Steuerzeichen enthalten: Man muss sich
zuerst ausdenken, ob sie "ASCII" oder "ANSI" sind und sie
ggfls. nach dem Einlesen und vor dem Abspeichern nach ASCII
wandeln, damit die folgende Wandlung iV -> ANSI -> ASCII -> #nnn
nichts kaputt macht. War der eingelesene Text jedoch ASCII,
so macht diese eigene Wandlung den Text kaputt, muss also
unterbleiben.
Es waere weniger irritierend, "transparenter" und auch
effizienter, wenn die Doppelumwandlung, die eben subtil
nicht 1:1 ist, unterbleiben wuerde und der ins-Befehl dann
eine Variante der "Eingabeverarbeitung" aufruft, die hinter
der hier schaedlichen Umwandlung "ANSI -> ASCII" aufsetzt.
viele Gruesse
Thomas Berger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFAJ2crENVh3bB0lwMRArhBAKCA2I9fcyYe8/6mvRSklgNMNo837ACgynI8
xeMnpmauP/9eUv2fUdLuX7o=
=XC9U
-----END PGP SIGNATURE-----
Mehr Informationen über die Mailingliste Allegro