AW: [Allegro] Allegro-Rohdaten (*_1.xld)
Thomas Fischer
fischer at mail.sub.uni-goettingen.de
Do Jan 26 14:30:15 CET 2006
Hallo Herr Eversberg,
> > ich möchte einige Daten aus Allegro mit einem Script bearbeiten
> > und dafür der Einfachheit halber direkt auf die Daten zugreifen.
> > Dabei tritt die Frage auf, wie ich einen Datensatz erkenne.
> Dann nehmen Sie nicht die Originaldatei, sondern machen vorher schnell
> einen Export ins Grundformat mit i-1.xpr (Kopie von i-1.apr).
> Dann haben Sie immer den Code 1 am Satzanfang und 13 10 am Ende,
> aber vorn keine störenden Hex-Zahlenwerte, in denen ja leider immer mal
> 0D 0A vorkommt.
_Ich_ könnte das wohl tun, wollte aber den Aufwand umgehen, wenn ich das Skript _anderen_ zur Verfügung stelle. Dann müsste ich nämlich noch für jede Datenbank eine Batchdatei erzeugen, die den Export liefert und die Daten nach dem Export wieder entfernt - und das für ein Dutzend Datenbanken. Da die Daten auf den Novell-Netz liegen, muss ich auch noch auf die Laufwerksverbindung achten - alles viel komplizierter als einfach eine Datei auszuwählen.
> Mit FLEX allerdings können Sie auch ALD-Dateien korrekt einlesen und
> dabei sogar die Satznummer ausrechnen. Vorgemacht ist es, mit
> ausführlichem Kommentar, in ald-erg.flx. Da wird eine ALD-Datei
> in eine Erg.Menge umgewandelt.
> Dazu auch: h xfetch (Beschreibung zum fetch-Befehl)
Ich habe mir das angesehen, und da wird auch mit Vorsicht um die 4 Bytes herumnavigiert, soweit ich sehe:
fetch b
nichts mehr: ende
if ="-1" jump dateiende
9 heisst "geloescht", Satz nicht mitnehmen
if ="9" if not #uvL jump nchst
if not ="9" if #uvL jump nchst
Satznummer ausrechnen (Bytes 1 - 4)
fetch b4
insert #unZ
Satznummer in die Hilfsdatei schreiben
write #unZ n
:nchst
zur Sicherheit naechste 4 Bytes lesen
fetch 4
dann Lesen bis zum Code 10 (= Satzende!)
fetch ^J
-> Schleife
jump loop
Damit sollte ich aber die Daten auch selbst extrahieren können.
(Wo kommt eigentlich das #uvL her?)
Schönen Dank
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro