[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]] ---- ====== Import mehrerer RTF-Dateien in eine TUSTEP-Datei ====== - [ re.to | re.to ]\\ \\ Siehe Erläuterungen im Quelltext.\\ $$- SAMMELRTF.M: (original version by MTr & KS, modified by rtb, 19.04.13) $$- ----------- $$- $$- Dieses Tuscript importiert die Daten aus mehreren RTF-Dateien $$- aus einem beliebigen Verzeichnis in eine einzige (Tustep-Gesamt-) $$- Zieldatei. $$- ACHTUNG: Wenn diese schon existiert, wird sie angemeldet und vor $$- dem Import gelöscht! $$- $$- Optional kann ein Muster vorgegeben werden, dem die Dateinamen $$- entsprechen müssen (hier '*.rtf'). $$- $$- Spezifikationen: $$- $$- PATH = dirname Der Namen des Verzeichnisses, in dem die $$- RTF-Dateien stehen $$- PATTERN = ... Dateinamenmuster für die zu importierenden $$- Dateien, z.B. *.rtf'text*.* $$- ZIEL = dateiname Tustep-Ausgabedatei; wenn die Datei noch nicht $$- existiert, wird sie kreiert; wenn sie schon $$- existiert, wird sie überschrieben. $$- $$! path=/home/rtb/Dokumente/koze/hz2/Rostocksche, pattern=*.RTF, ziel=hz2_ros.tus $$- $$ MODE TUSCRIPT, {} - Prüfung des Pfades wird vorerst vernachlässigt (wegen Linux-Kompatib.) - IF-BLOCK - Muster für Dateinamen prüfen: IF (pattern .NE. "") THEN CHECK R_TABLE/TEXT/OR fpos+fmld = ":{pattern}:" SET mld = CONCAT ("pattern: ", fmld) IF (fpos.NE.0) ERROR/STOP mld BUILD R_TABLE/TEXT/OR pattern = ":{pattern}:" END IF - Zieldatei kreieren/anmelden und löschen: ERROR/STOP CREATE (ziel, SEQ-O) ERROR/STOP ERASE (ziel) - Ausführung (wobei COMPILE verwendet werden kann, - aber keinen Geschwindigkeitsvorteil bringt): SET files = FILE_NAMES (-, $path) - Prüfen des Pfad-Trennzeichens: Windows oder Linux? SET sys = SYSTEM() IF (sys.EQ."WIN") SET delim ="\" IF (sys.EQ."LINUX") SET delim ="/" IF (pattern.NE."") SET files = FILTER (files, pattern, -) LOOP nr, file = files SET fullname = CONCAT (path, delim, file) DEFINE "qu*tmp.1" = fullname - SET file = CAPS (file) ERROR/STOP OPEN ("qu*tmp.1", READ, -) IF ("qu*tmp.1" .EQ. 'FDF') THEN PRINT/ERROR "" PRINT/ERROR "Datei Nr. ", nr, " (= ", file, ") wird importiert..." PRINT/ERROR "" EXECUTE #*import,qu*tmp.1,{ziel},ign=+,lo=- END IF ERROR/STOP CLOSE ("qu*tmp.1") REMOVE "qu*tmp.1" - Nur zum Testen: Abbruch nach n importierten Dateien: - IF (nr .EQ. 8) STOP END LOOP \\ Zu einem **Video** (engl.) von R. Tobner (Uni Trier) zu TUSTEP-RTF-Processing siehe unter [[videos:start|Videos]]\\ \\ ---- [[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]