Diskussion:CLOSE

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Abbruch Anomalie[Quelltext bearbeiten]

Folgendes Beispiel führt zu der auf der unter CLOSE erwähnten Problematik durch das fehlen eines abschließenden CLOSE:

100 REM DATEI "DATEN" LOESCHEN ...
110 OPEN 1,8,15,"S:DATEN": CLOSE 1
190 REM DATEI "DATEN" SCHREIBEN ...
200 OPEN 1,8,2,"DATEN,S,W"
210 FOR I=1 TO 10: PRINT#1, TI,TI$,I: NEXT I
215 PRINT#1,SPC(100)"TOO BIG" : REM MEHR ALS 88 ZEICHEN IST FUER INPUT# ZU VIEL!
220 CLOSE 1
290 REM DATEI "DATEN" LESEN UND AUSGEBEN ...
300 OPEN 1,8,2,"DATEN,S,R"
310 FOR I=0 TO 1 STEP 0
320 INPUT#1, D$
330 PRINT D$
340 IF ST <> 0 THEN I=1
350 NEXT I
360 CLOSE 1

Ein RUN bewirkt die Ausgabe des Fehlers

?STRING TOO LONG  ERROR IN 320

Auch wenn man die Zeile 215 korrigiert auf

215 PRINT#,SPC(10)"NOT BIG"

endet jeder erneute Programmlauf mit RUN in obigem Fehler. D.h., da das CLOSE nicht ausgeführt wurde, wird weder die Datei gelöscht noch neu überschrieben (weil diese Aktionen auch die Dateinummer 1 verwenden)! Erst ein

CLOSE 1
RUN

behebt die "Schieflage" ;)
Auch eine zusätzliche Zeile, die das Schließen von Dateinummer 1 vor der Verwendung gewährleisten soll, zeigt keine Verbesserung:

90 CLOSE 1