Seltsames Detail um get/ansi/ins/write herum

Bernhard Eversberg ev at buch.biblio.etc.tu-bs.de
Mo Feb 9 10:30:26 CET 2004


On 8 Feb 04, at 10:09, Heinrich Allers wrote:

> xport f aus.rtf\write Fdisphead.rtf
> open ein.txt\get\ansi
> 
>   //Variante 1 (funktionierend):
> write\write n
>   //Variante 2 (nicht für A-Umlaut funktionierend):
>   ins #ux2\write #ux2 n
> 
> write "}"\close\close x
> h aus
> 
> Das riesige Rätsel, das sich mir stellt, ist, warum Variante 1 für 
> _alle_ Zeichen der Eingabedateizeile funktioniert, bei Aktivierung von 
> Variante 2 dagegen (Deaktivierung von Variante 1) das Ä (A-Umlaut) 
> _nicht_ richtig (also nicht als Ä) dargestellt wird!!!


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.

2. Die Eingabe aus dem Schreibfeld erhaelt also, wie gesagt, ANSI
   und wird dann nach ASCII gewandelt, weil es im Arbeitsspeicher so
   sein muss.

Wenn eine ASCII-Datei mit get gelesen wird, ist es genau so, wie wenn
der Text im ASCII-codierten FLEX steht.

Fazit 1:

get/insert muss ohne "ansi" angewendet werden, weil das schon
automatisch im "insert" enthalten ist.
ALSO:
get
ins #ux2

get/write  muss mit "ansi" gemacht werden, denn das Eingelesene
ist ASCII und write macht keine automatische Umcodierung, daher
muss man sie explizit veranlassen.
ALSO:
get
ansi
write

Fazit 2:
Es liegt kein Bug vor, sondern die Sache ist wohlueberlegt.

MfG
B.E.


Bernhard Eversberg
Universitaetsbibliothek, Postf. 3329, 
D-38023 Braunschweig, Germany
Tel.  +49 531 391-5026 , -5011 , FAX  -5836
e-mail  B.Eversberg at tu-bs.de  




Mehr Informationen über die Mailingliste Allegro