;------------------------------------------------------------------------------------------------------------------------------------- ; ; Schnittstelle zu anderen Modulen: ; ; INPUT und INPUTRESTRIKTIONEN ; ============================ ; ; Parameter : ; ; Typ Variablename Variablebeschreibung [Wertebereich] ; str casciidatei ASCII-Datei ; list lzeilen Zeilenliste ; sym sdatbschg Dateibeschreibung aus der Befehlszeile ermitteln ; t = mit ; nil = ohne ; sym suschr Datei überschreiben ; t = übschreiben ; nil = nicht übschreiben ; ; ; OUTPUT und OUTPUTRESTRIKTIONEN ; ================================ ; ; Parameter : ; ; Typ Variablenname Variablenbeschreibung [Wertebereich] ; file fpschreiben Dateideskriptor ; ;------------------------------------------------------------------------------------------------------------------------------------- ; ( defun ascii_datei_schreiben ( casciidatei lzeilen sdatbschg suschr / calert cdatei cdateierw cdateiwar cgetstring cmeldg cwrite czeile czeilevorg fpschreiben ianzschl ianzze ianzzeles ianzzesch isposc isposd isposw iwarten izler lzeilenles lzeilenschr swarten ) ; Die Datei bearbeiten (setq fpschreiben nil) (setq cdatei casciidatei) (if (and (/= suschr nil) (/= lzeilen nil)) (progn ; Die Datei zum Schreiben öffnen. Dies geschieht in einer Schleife, da es zu Wartezeiten im Netzwerk kommen kann (setq cdateierw (dateierweiterung_ermitteln cdatei)) (if (or (= cdateierw ".scr") (= cdateierw ".bat")) (setq ianzschl 1) (setq ianzschl 15) ; else ) ; if (setq izler 0) (setq fpschreiben (open cdatei "w")) (while (and (= fpschreiben nil) (< izler ianzschl)) (setq fpschreiben (open cdatei "w")) (setq izler (+ izler 1)) ) ; while ; Eine Zeile mit der Dateibeschreibung eintragen (if (and (/= sdatbschg nil) (/= fpschreiben nil)) (progn (setq czeilevorg " ") (terpri) (setq cgetstring (getstring t "Dateibeschreibung: ")) (if (/= cgetstring "") (setq czeile cgetstring) (setq czeile czeilevorg) ; else ) ; if (if (/= czeile czeilevorg) (progn (setq czeile (strcat "[" czeile "]")) (setq cwrite (write-line czeile fpschreiben)) (if (/= cwrite czeile) (alert "Die Zeile ist möglicherweise falsch beschrieben") ) ; if ) ; progn ); if ) ; progn ) ; if ; Die Datei beschreiben (setq ianzze (length lzeilen)) (setq izler 0) (while (and (< izler ianzze) (/= fpschreiben nil)) (setq czeile (nth izler lzeilen)) (setq cwrite (write-line czeile fpschreiben)) (if (/= cwrite czeile) (alert "Die Zeile ist möglicherweise falsch beschrieben") ) ; if (setq izler (+ izler 1)) ) ; while ; Die Datei schließen (if (/= fpschreiben nil) (close fpschreiben) ) ; if ) ; progn ) ; if ; Eine Meldung gegebenenfalls ausgeben und den Befehl abbrechen (Wunsch Fr. Bittmann) (if (= fpschreiben nil) (progn ; else (setq cmeldg (strcat "Die Datei '" cdatei "' wurde nicht beschrieben!")) (alert cmeldg) ) ; progn ) ; if ; Rückgabewert fpschreiben ) ; Modulende