[[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]]