[Allegro] import mit fx: re wirkungslos?
Sibylle Koczian
Sibylle.Koczian at t-online.de
Di Jan 12 18:25:29 CET 2010
Liebe Liste,
ich bin nicht sicher, ob sich der Import von Fremddaten mit fester
Feldanzahl wirklich so benehmen soll, wie er es tut. Alternativ, wenn
das Verhalten so ist, wie es sein soll, würde ich gern durchblicken.
Zugrunde liegt eine .csv-Datei: Tabulator als Feldtrenner, Zeilenumbruch
als Satzende, es ist Windows, also CR LF. Keine eigene Kennzeichnung von
Textfeldern mit " o.ä. Wie üblich, wenn man so eine Datei mit einem
Office-Programm erzeugt, gibt es nach dem letzten Feld keinen
Feldtrenner mehr, sondern nur noch das Satzende. Und das scheint Allegro
nicht für so normal zu halten wie Excel und Konsorten (hier OpenOffice
Calc) das tun.
Versuch 1:
re=13 10
fx=7
fe=9
Mit y-Befehlen werden nur ASCII 1 - 8 entfernt, sonst nichts. Keine
anderen globalen Ersetzungen.
Exportparameter: eine e-1.vpr (unveränderte Kopie der originalen
e-1.apr, die Konfiguration heißt v).
Ergebnis: Umgewandelt werden der erste und jeder zweite der folgenden
Sätze. Jeder dieser Sätze enthält in der Kategorie, in die das letzte
Feld kommt, einen Zeilenumbruch und dann das erste Feld des neuen
Satzes. Der Rest dieses neuen Satzes erscheint überhaupt nicht im Ergebnis.
Versuch 2:
re=10
fx=7
fe=9
y .13 9 zusätzlich zu den schon vorhandenen y-Befehlen
Ergebnis: jetzt werden alle Sätze umgewandelt, aber das Zeichen ASCII
10, also LF, wird als erstes Zeichen des neuen Satzes in das
entsprechende Feld geschrieben.
Erklären kann ich mir das schon: Das Programm liest bis zum 7.
Tabulatorzeichen (wg. fx=7) alles ein, auch die Zeichenkette von re,
wenn sie vorher kommt. Ein evtl. vorhandener Rest bis zum nächsten
Auftreten von re wird ignoriert, mit (und nicht etwa hinter) diesem re
beginnt der nächste Satz. Stimmt das so? Und soll es wirklich so sein?
Bei Daten vom Typ C hat man re doch auch nicht am Anfang eines neuen Satzes!
Es geht natürlich mit Variante 3, ohne re:
fx=7
fe=0
y .9 0
y .10 256
y .13 0
Vielleicht könnte der Hinweis zu re im Systemhandbuch (11.2.1., Typ B)
etwas deutlicher formuliert werden. Denn dass re eben _nicht_ das letzte
Feldende ersetzen kann, wird zumindest mir daraus nicht klar. Und so
selten sind Importe aus tab-getrennten Textdateien doch sicher nicht,
oder doch?
Beste Grüße,
Koczian
Mehr Informationen über die Mailingliste Allegro