[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]
----
====== Aufteilen einer Datei in Einzeldateien ======
- [ re.to | re.to ]\\ \\  Kontext:\\  Oftmals bearbeite ich einzelne RTF-Dateien gesammelt in einer einzigen TUSTEP-Datei (siehe dazu [[tuscript:loesungen:import_mehrerer_rtf_dateien|Import mehrerer RTF-Dateien]]).\\  Nach der Bearbeitung soll diese Sammeldatei wieder in die ursprünglichen einzelnen Dateien aufgeteilt werden.\\ \\  Jede RTF-Einzeldatei ist innerhalb der großen Sammeldatei gekennzeichnet mit\\   * .\\ \\  Im Folgenden wird nur das End-Tag "" benutzt, d.h. nach dem Tag ist\\  ein LOOP zu Ende und der Abschnitt bis dorthin wird in die erste Datei geschrieben.\\ \\  Siehe Kommentare im Quelltext.\\ 
$$- Eine große Datei anhand eines bestimmten Tags in viele kleine aufteilen
$$ MODE TUSCRIPT, {}
- Welche Datei soll unterteilt werden?
SET this  = "hz2_npzxx.tus"
- Abschnittanfang und Abschnittende für Unterteilung
- BUILD S_TABLE atab = "::"
BUILD S_TABLE etab = "::"
- STREAM :: ein LOOP liest die ganze Datei, bis zur Endekennung (in diesem speziellen Fall)
- *      :: Zeileneinteilung der zu lesenden Datei geht nicht verloren; (Sternvariable)
ACCESS d: READ/STREAM/* $this ... - diese 3 Punkte geben an, dass nächste Zeile = Fortsetzungszeile
          snr.znr/unr, aken + txt + eken/etab
          - $aken muss mitangegeben werden, auch wenn für die Ausgabe alles in $txt steckt
          - entscheidend dafür, dass die Anfangskennung nicht berücksichtigt wird, ist, dass
          - "/atab" weggelassen wird
          - denn mit "/atab", wird eine Leerzeile nach $aken in Zieldatei eingefügt (unerfindlicherweise,
          - denn nach $txt und vor $eken wird keine Leerzeile eingefügt -- aber egal, die
          - Anfangskennung brauchts ja nicht).
  LOOP nr
    READ/EXIT d
    SET current_file = CONCAT ("npzxx-", nr)
    - sequentielle Tustep-Datei, sofort anmelden (-O)
    ERROR/STOP CREATE (current_file, seq-O)
    - FILE/ERASE "{current_file}" = aken
    FILE/ERASE "{current_file}" = txt
    FILE       "{current_file}" = eken
  END LOOP
ENDACCESS/PRINT d
----
[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]