home *** CD-ROM | disk | FTP | other *** search
- 1 '* -------------------------------------------------- *
- 2 '* SEQDAT_A.BAS *
- 3 '* Beispiel für sequentiellen Dateizugriff *
- 4 '* -------------------------------------------------- *
- 20 '
- 30 'Hauptprogramm
- 40 '
- 50 CLS
- 60 GOSUB 1000 'Dateien öffnen
- 70 GOSUB 2000 'Dateien bearbeiten
- 80 GOSUB 3000 'Dateien schließen
- 85 PRINT : PRINT "Programm beendet. <TASTE>": DUMMY$ = INPUT$(1)
- 90 CLS
- 100 END
- 110 'Ende Hauptprogramm ***********************************
- 120 '
- 970 'UP - Dateien öffnen **********************************
- 980 '
- 990 'Datei "c:\autoexec.bat" zum Lesen öffnen
- 1000 ON ERROR GOTO 10000 'Reaktion auf Dateifehler
- 1010 'Datei "c:\autoexec.$-$" wird neu angelegt oder überschrieben
- 1020 OPEN "c:\autoexec.tst" FOR INPUT AS #1
- 1030 OPEN "c:\autoexec.$-$" FOR OUTPUT AS #2
- 1032 OPEN "SCRN:" FOR OUTPUT AS #3
- 1034 OPEN "C:\AUTOEXEC.NOR" FOR OUTPUT AS #4
- 1040 ON ERROR GOTO 0 'Fehlerbehandlung abschalten
- 1042 PRINT "Dateien erfolgreich geöffnet"
- 1050 RETURN
- 1060 'Ende UP - Dateien öffnen *****************************
- 1070 '
- 1980 'UP - Dateien bearbeiten ******************************
- 1990 '
- 2000 PRINT : PRINT "UP - DATEIBEARBEITUNG"
- 2010 'Lesen zeichenweise mit INPUT$
- 2011 PRINT "AUTOEXEC.TST wird zeichenweise gelesen mit INPUT$ ";
- 2012 PRINT "und mit PRINT # zeichenweise auf dem Gerät 'scrn' ausgegeben."
- 2013 PRINT "Gleichzeitig wird die Datei AUTOEXEC.$-$ mit PRINT # zeichenweise beschrieben.": PRINT
- 2015 DUMMY$ = CHR$(255)
- 2020 WHILE NOT EOF(1)
- 2030 ZEICHEN$ = INPUT$(1, 1)
- 2035 PRINT #2, ZEICHEN$;
- 2040 IF ZEICHEN$ <> CHR$(13) THEN PRINT #3, ZEICHEN$;
- 2050 IF ZEICHEN$ = CHR$(13) AND DUMMY$ <> CHR$(27) THEN PRINT #3, " <─┘ drücken"; : DUMMY$ = INPUT$(1)
- 2055 WHILE DUMMY$ <> CHR$(13) AND DUMMY$ <> CHR$(27) AND ZEICHEN$ = CHR$(13)
- 2056 DUMMY$ = INPUT$(1)
- 2057 WEND
- 2060 WEND
- 2061 PRINT #3, : PRINT #3, "Dateiende erreicht, <TASTE>": DUMMY$ = INPUT$(1)
- 2062 PRINT : PRINT "Jetzt wird die Datei AUTOEXEC.TST wieder geschlossen ";
- 2063 PRINT "und wieder geöffnet, damit ein erneutes Lesen möglich ist."
- 2064 PRINT "Die Ausgabe erfolgt jetzt mit WRITE # statt mit PRINT #.": PRINT
- 2065 CLOSE #1
- 2066 OPEN "C:\AUTOEXEC.TST" FOR INPUT AS #1
- 2067 OPEN "C:\AUTOEXEC.INP" FOR OUTPUT AS #5
- 2069 DUMMY$ = CHR$(255)
- 2070 WHILE NOT EOF(1)
- 2080 ZEICHEN$ = INPUT$(1, 1)
- 2085 WRITE #5, ZEICHEN$, ASC(ZEICHEN$)
- 2090 IF ZEICHEN$ <> CHR$(13) THEN WRITE #3, ZEICHEN$
- 2100 IF ZEICHEN$ = CHR$(13) AND DUMMY$ <> CHR$(27) THEN WRITE #3, " <─┘ drücken!": DUMMY$ = INPUT$(1)
- 2103 WHILE DUMMY$ <> CHR$(13) AND DUMMY$ <> CHR$(27) AND ZEICHEN$ = CHR$(13)
- 2104 DUMMY$ = INPUT$(1)
- 2105 WEND
- 2110 WEND
- 2115 PRINT #3, : PRINT #3, "Dateiende erreicht, <TASTE>": DUMMY$ = INPUT$(1)
- 2117 CLOSE #5: CLOSE #2: OPEN "C:\AUTOEXEC.$-$" FOR INPUT AS #2
- 2120 PRINT : PRINT #3, "Jetzt wird die Datei AUTOEXEC.$-$ zeilenweise mit LINE INPUT # gelesen"
- 2130 PRINT #3, " und daraufhin überprüft, ob die Zeile mit REM beginnt."
- 2140 PRINT "Eine solche Zeile wird nicht in die neue Datei AUTOEXEC.NOR übertragen."
- 2150 PRINT : PRINT "<TASTE> zum Starten!"
- 2160 DUMMY$ = INPUT$(1): PRINT : ZZ = 1: DUMMY$ = CHR$(255)
- 2170 WHILE NOT EOF(2)
- 2180 LINE INPUT #2, ZEILE$
- 2190 PRINT #3, ZEILE$;
- 2200 KOMM$ = LEFT$(ZEILE$, 3)
- 2210 IF KOMM$ <> "REM" AND KOMM$ <> "rem" AND KOMM$ <> "Rem" THEN PRINT #3, " --> GESPEICHERT!": REMFLAG = 0 ELSE PRINT #3, " --> NICHT gespeichert!": REMFLAG = 1
- 2220 IF REMFLAG = 0 THEN PRINT #4, ZEILE$
- 2230 ZZ = ZZ + 1
- 2240 IF ZZ > 10 THEN ZZ = 1: IF DUMMY$ <> CHR$(27) THEN PRINT : PRINT "<TASTE>": DUMMY$ = INPUT$(1)
- 2250 WEND
- 2260 PRINT #3, : PRINT #3, "Dateiende erreicht, <TASTE>": DUMMY$ = INPUT$(1)
- 2270 CLOSE #4
- 2280 OPEN "C:\AUTOEXEC.NOR" FOR INPUT AS #4
- 2290 PRINT : PRINT #3, "Die Datei AUTOEXEC.NOR wird zur Kontrolle gelesen."
- 2300 PRINT : PRINT "<TASTE> zum Starten!"
- 2310 DUMMY$ = INPUT$(1): PRINT : ZZ = 1: DUMMY$ = CHR$(255)
- 2320 WHILE NOT EOF(4)
- 2330 LINE INPUT #4, ZEILE$
- 2340 PRINT #3, ZEILE$
- 2350 ZZ = ZZ + 1
- 2360 IF ZZ > 10 THEN ZZ = 1: IF DUMMY$ <> CHR$(27) THEN PRINT : PRINT "<TASTE>": DUMMY$ = INPUT$(1)
- 2370 WEND
- 2380 PRINT #3, "Dateiende erreicht, <TASTE>": DUMMY$ = INPUT$(1)
- 2390 OPEN "C:\AUTOEXEC.INP" FOR INPUT AS #5
- 2400 PRINT : PRINT #3, "Die Datei AUTOEXEC.INP wird jetzt mit INPUT # gelesen."
- 2410 PRINT : PRINT "<TASTE> zum Starten!"
- 2420 DUMMY$ = INPUT$(1): PRINT : ZZ = 1: DUMMY$ = CHR$(255)
- 2430 WHILE NOT EOF(5)
- 2440 INPUT #5, Z$, W
- 2450 PRINT #3, "Zeichen: "; Z$, "ASCII-Wert:"; W
- 2460 ZZ = ZZ + 1
- 2470 IF ZZ > 10 THEN ZZ = 1: IF DUMMY$ <> CHR$(27) THEN PRINT : PRINT "<TASTE>": DUMMY$ = INPUT$(1)
- 2480 WEND
- 2490 PRINT #3, : PRINT #3, "Dateiende erreicht, <TASTE>": DUMMY$ = INPUT$(1)
- 2500 CLOSE #5
- 2510 OPEN "C:\AUTOEXEC.INP" FOR INPUT AS #5
- 2520 PRINT : PRINT #3, "Die Datei AUTOEXEC.INP wird jetzt mit INPUT$ gelesen."
- 2530 PRINT : PRINT "<TASTE> zum Starten!"
- 2540 DUMMY$ = INPUT$(1): PRINT : ZZ = 1: GZ = 1: SCHLEIFE = 1: DUMMY$ = CHR$(255)
- 2550 WHILE SCHLEIFE
- 2560 ZEICHEN$ = INPUT$(1, 5)
- 2570 IF EOF(5) THEN GZ = 1000 ELSE PRINT ZEICHEN$;
- 2580 ZZ = ZZ + 1: GZ = GZ + 1
- 2585 IF ZZ > 50 THEN ZZ = 1: IF DUMMY$ <> CHR$(27) THEN PRINT : PRINT "<TASTE>": DUMMY$ = INPUT$(1)
- 2590 WHILE GZ > 1000
- 2600 PRINT : PRINT "Bis hierhin und nicht weiter: ";
- 2610 IF EOF(5) THEN PRINT "Dateiende erreicht, <TASTE>"
- 2620 IF NOT EOF(5) THEN PRINT "Wir haben genug gesehen. <TASTE>"
- 2630 PRINT : DUMMY$ = INPUT$(1)
- 2640 GZ = 0: SCHLEIFE = 0
- 2650 CLOSE #5
- 2660 WEND
- 2670 WEND
- 2900 RETURN
- 2910 'Ende UP - Dateien bearbeiten *************************
- 2920 '
- 2980 'UP - Dateien schließen *******************************
- 2990 '
- 3000 ON ERROR GOTO 10000
- 3010 CLOSE #1
- 3020 CLOSE #2
- 3022 CLOSE #3
- 3024 CLOSE #4
- 3030 ON ERROR GOTO 0
- 3032 PRINT "Dateien erfolgreich geschlossen!"
- 3040 RETURN
- 3050 'Ende UP - Dateien schließen **************************
- 3060 '
- 9980 'Sprungziel für Fehlerbehandlung bei Dateizugriffen ***
- 9990 '
- 10000 IF ERL = 1020 THEN PRINT "Datei C:\AUTOEXEC.TST konnte nicht geöffnet werden!": PRINT
- 10010 IF ERL = 1030 THEN PRINT "Datei C:\AUTOEXEC.$-$ konnte nicht geöffnet werden!": PRINT
- 10020 IF ERL = 1034 THEN PRINT "Datei C:\AUTOEXEC.NOR konnte nicht geöffnet werden!": PRINT
- 10030 IF ERL = 3010 THEN PRINT "Datei C:\AUTOEXEC.TST konnte nicht geschlossen werden!": PRINT
- 10040 IF ERL = 3020 THEN PRINT "Datei C:\AUTOEXEC.$-$ konnte nicht geschlossen werden!": PRINT
- 10050 IF ERL = 3024 THEN PRINT "Datei C:\AUTOEXEC.NOR konnte nicht geschlossen werden!": PRINT
- 10560 PRINT "[N]och einmal versuchen oder Programm be[e]nden [ N / E ] ? ";
- 10570 WEITER$ = INPUT$(1)
- 10580 IF WEITER$ = "N" OR WEITER$ = "n" THEN RESUME 0
- 10590 END
- 10600 'Ende der Fehlerbehandlungsanweisungen ***************
- 10610 '
- 10615 '* ------------------------------------------------- *
- 10620 '* Ende von SEQDAT_A.BAS *
-