[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]
----
====== Gerüst für ein Kopiere-Script - *KOMA ======
- {{files_open:benutzericons:schneider-lastin-lg.jpg?nolink&16x16|schneider-lastin}} schneider-lastin\\ \\  Das Makro #*KOMA (=KOpiere-MAkro) erstellt ein **Programm-Gerüst zum satz- oder portionsweisen Kopieren**.\\  #*KOMA schreibt das Gerüst in die zu DATEI angegebene Datei.\\  Das Makro und seine Spezifikationen lauten:\\  #*KOMA, DATEI, MODUS\\ \\  1. Bei **MODUS=satzweise** lautet das Ergebnis\\ 
$$! quelle, ziel
$$-
$$ MODE TUSCRIPT
SET status = CHECK (quelle, READ, TUSTEP)
ERROR/STOP "QUELLE: ", status
SET status = CHECK (ziel, WRITE, TUSTEP)
ERROR/STOP "ZIEL: ", status
SET status = UNIQUE (quelle, ziel)
ERROR/STOP "Datei ", status, " ist mehrfach angegeben"
COMPILE
ACCESS q: READ       /RECORDS "{quelle}" sn.zn/un, text
ACCESS z: WRITE/ERASE/RECORDS  "{ziel}"  sn.zn/un, text
LOOP/999999
   READ/IGNORE/EXIT q
   - Hier Anweisungen zum Auswählen/Ändern der Daten einfügen
   WRITE/ADJUST z
ENDLOOP
ENDACCESS/PRINT q
ENDACCESS/PRINT z
ENDCOMPILE
2. Bei **MODUS=portionsweise** lautet das Ergebnis (ab COMPILE)\\ 
COMPILE
- Tabellen atab,ttab,etab anpassen bzw. entfernen
BUILD S_TABLE atab = ":[::%[:"
BUILD S_TABLE ttab = ":|:"
BUILD S_TABLE etab = ":]::%]:"
ACCESS q: READ/STREAM/RECORDS "{quelle}" ...
                sn.zn/un, aken/atab + text/ttab + eken/etab
ACCESS z: WRITE/ERASE/STREAM   "{ziel}"  ...
                sn.zn/un, aken      + text      + eken
LOOP/999999
   READ/NEXT/EXIT q
   - Hier Anweisungen zum Auswählen/Ändern der Daten einfügen
   WRITE z
ENDLOOP
ENDACCESS/PRINT q
ENDACCESS/PRINT z
ENDCOMPILE
----
[[tuscript:loesungen:start|Zurück zum Inhaltsverzeichnis - Lösungen und Tipps]]