[Tustep-Liste] Inhalt einer Datei in Einzeldateien speichern

Thomas Kollatz t.kollatz at steinheim-institut.de
Fri Oct 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



More information about the Tustep-Liste mailing list