AW: AW: AW: [Allegro] Exportformate

Fischer, Thomas fischer at sub.uni-goettingen.de
Mi Sep 15 12:56:08 CEST 2010


Hallo Herr Eversberg!

> Fischer, Thomas schrieb:
> >
> > Bei den P/Q-Ersetzungen scheint ' als Trennzeichen zu funktionieren.

> Im Quellcode finde ich das aber nicht bestätigt, da wird nur der "
> ausgewertet. Was genau war denn dann der Effekt?
> B.E.

In einem Testdatensatz mit dem besagten Zeichen erhalte ich statt

|1aThe Hungarian word for 'obx' ist Ochs.

mit
Q 202 187 '

|1aThe Hungarian word for ' [BB]-->Ê»<         modifierletterturnedcommaobx' [BB]-->Ê»<               modifierletterturnedcomma ist Ochs.

, es wird also der ganze Rest der Zeile genommen, und das darin vorkommende Zeichen gleich noch einmal ersetzt. Warum das keine unendliche Schleife bildet weiß ich nicht.

Ich habe noch weitere Schwierigkeiten mit dem Zeichen. Auch wenn die Übersetzung für P und Q korrekt auf 39 gesetzt ist, bekomme ich die folgenden Resultate:

!ute c"obx" f39 p{'|1c'} P{8}
erzeugt
|1cʻobxʻ
#ute c"obx" f39 p{'|1c'} P{8}
erzeugt
|1c'obx

(beachten Sie das Apostroph am Anfang!).
lxy gibt die Länge von #ute und !ute beide Male mit 7 an.

Dabei ist #ute wie folgt entstanden:

!u1 dsu asu                                                             sonst u1 in Kleinbuchstaben
!usu dsx dsu asu                                                        nur Kleinbuchstaben im Suchregister
!usu f39 f';.:,!?[/-"(<* ' f39 e' ' F';.:,!?")>*/-]' F39 =te    Satzzeichen am Anfang und Ende weg

und #u1 kommt von dem (unsinnigen)
#20aThe Hungarian word for ʻobxʻ ist Ochs.
mit "Ê»" UTF-8 für "ʻ".

Offenbar erfolgt die Umkodierung später als ich gedacht habe bzw. muss explizit mit y2 erzwungen werden.
Solange eine Variable in eine andere kopiert wird, scheinen sich #usu und !usu nicht zu unterscheiden, und bei
#ute f39 p{'|1c'} P{8}
wird die Umwandlung  "Ê»" -> "ʻ" nach dem f39 und erst beim Erzeugen des Registereintrags durchgeführt.
Stimmt das, und steht das irgendwo?

#ute y2 f39 p{'|1c'} P{8}
erzeugt das gewünschte
|1cobx

Warum
!ute c"obx" f39 p{'|1c'} P{8}
|1cʻobxʻ
erzeugt ist damit aber noch nicht geklärt; das lässt sich auch durch Einsatz von y1 oder y2 nicht ändern. Haben Sie eine Idee?

Mit freundlichen Grüßen
Thomas Fischer


Mehr Informationen über die Mailingliste Allegro