PACKET eudas alt nach neu
DEFINES
eudas alt nach neu :
DATASPACE VAR scratch;
PROC eudas alt nach neu (TEXT CONST datei alt, datei neu) :
IF exists (datei neu) THEN
errorstop ("Zieldatei existiert bereits")
ELSE
FILE VAR f := sequential file (input, datei alt);
forget (scratch); scratch := nilspace;
BOUND TEXT VAR zeile := scratch;
BOUND SATZ VAR neu := scratch;
zieldatei einrichten;
kopieren;
forget (scratch)
END IF .
zieldatei einrichten :
getline (f, zeile);
IF (zeile ISUB 1) < 3 OR (zeile ISUB 1) > 256 THEN
errorstop ("Ausgangsdatei ist keine EUDAS-Datei")
END IF;
EUDAT VAR e;
oeffne (e, datei neu);
feldnamen aendern (e, neu) .
kopieren :
WHILE NOT eof (f) REP
getline (f, zeile);
satz einfuegen (e, neu);
cout (satznr (e));
weiter (e)
END REP .
END PROC eudas alt nach neu;
END PACKET eudas alt nach neu;