Diskussion:CLOSE
Aus C64-Wiki
Zur Navigation springenZur Suche springenAbbruch 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