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