[Tustep-Liste] Inhalt einer Datei in Einzeldateien speichern
Thomas Kollatz
t.kollatz at steinheim-institut.de
Fr Okt 7 17:03:47 CEST 2005
Lieber Herr Brunschön, liebe Liste!
Ihre Aufgabe lässt sich auch recht hübsch mit
#ma lösen.
Beim durchlaufen des Makros wird ihre Beispieldatei(quelle=brunschön)
auf die temporären Dateien: neu3, neu57, neu63 aufgeteilt;
Wenn ich mehr Zeit hätte, wäre es sicher kein Problem die Seiten/Zeilen-
Einteilung der Quelldatei in die Zieldateien zu übernehmen bzw. alle
Datensätze der Datei neu3 der Satznummer 3, allen Datensätzen der Datei
neu57 der Satznummer 57 unterzuordnen.
*****
Ausgangsdaten "brunschoen":
8.1 |<page nr="3">
8.2 |Viel Text
8.3 |Viel Text
9.1 |<page nr="57">
9.2 |Noch viel mehr Text
10.1 |<page nr="63">
10.2 |Viel Text
*****
Hinweis:
#-ma erwartet beim stream-Zugriff offensichtlich
- eine Endekennung (hier: also das fehlende </page>)
- Die Fehlermeldung:
- ******* Datenfehler: </page> fehlt vor Datenende
- weist uns auf diesen Datenfehler hin.
- Ansonsten macht das Programm, was es soll.
#fe,aus
#ma
$$! quelle=brunschoen
$$= - { }
MODE variable
SET X = OPEN ("{quelle}", READ, -std-)
BUILD S_GROUP <[id] = ":><1<>3>/:"
BUILD s_table aken = *
DATA :<<page nr="<[id]":
BUILD s_table eken = ":<</page>>:"
BUILD x_table id = *
DATA :<<page nr="<[id]">>:<=03:
ACCESS q: read/STREAM "{quelle}" s.z/n, aken+txt+eken, typ
LOOP/9999
READ q
if (eof) exit
SET nr = Exchange (aken, id)
SET n_neu = "neu{nr}"
SET X = CREATE ("{n_neu}", seq-t,-std-)
SET X = OPEN ("{n_neu}", write, -std-)
FILE/ERASE "{n_neu}"
DATA {aken}{txt}
ENDFILE
ENDLOOP
ENDACCESS q
*eof
#fe,ein
--
drs Thomas Kollatz - wissenschaftlicher Mitarbeiter / research assistant
Salomon Ludwig Steinheim-Institut fuer deutsch-juedische Geschichte
D - 47057 Duisburg, Geibelstrasse 41, Tel: 49-203-370071
www.steinheim-institut.de/das_institut/mitarbeiter/kollatz/index.xml
Mehr Informationen über die Mailingliste Tustep-Liste