ProgrammEditor in QBasic
Posted: Sat Mar 22, 2003 3:00 pm
Hallo,
ich habe da schon länger ein Problem, ich finde den fehler in meinen Programm nicht... Bitte schaut euch mein Programm mal an, vielleicht entdeckt ihr ja den fehler.
Kopiert das Programm und startet es. Es sind zwei Dateien: Eine Prog.Datei und die zweite ist die zu öffnende Textdatei. mit pfeil auf und ab könnt ihr die datei durchblättern und mit space die zeile zum editieren aufrufen. wenn ihr dann mir enter später die zeile bestätigt kommt eine fehlermeldung...
CLS
editzeilen = 150
programmnummer$ = "%10000.nc"
DIM lines1(editzeilen) AS STRING
OPEN programmnummer$ FOR INPUT AS #1
rq = 1
ret:
DO WHILE NOT EOF(1)
aq = aq + 1
IF aq > 100 AND rq = 1 THEN REDIM lines(1000): aq = 0: rq = 0: GOTO ret
LINE INPUT #1, lines1(aq)
LOOP
CLOSE 1
bq = 1
Anzeige:
COLOR 9, 1
LOCATE 13, 3: PRINT SPC(30);
LOCATE 13, 3: PRINT lines1(bq)
COLOR 10, 6
LOCATE 14, 3: PRINT SPC(30);
LOCATE 14, 3: PRINT lines1(bq + 1)
COLOR 9, 1
LOCATE 15, 3: PRINT SPC(30);
LOCATE 15, 3: PRINT lines1(bq + 2)
LOCATE 16, 3: PRINT SPC(30);
LOCATE 16, 3: PRINT lines1(bq + 3)
LOCATE 17, 3: PRINT SPC(30);
LOCATE 17, 3: PRINT lines1(bq + 4)
LOCATE 18, 3: PRINT SPC(30);
LOCATE 18, 3: PRINT lines1(bq + 5)
ck:
DO:
ckey$ = INKEY$
COLOR 0: LOCATE 23, 54: PRINT TIME$
LOOP UNTIL LEN(ckey$)
IF ckey$ = (CHR$(0) + CHR$(59)) THEN GOTO 200' manueller betrieb
IF ckey$ = (CHR$(0) + CHR$(60)) THEN GOTO 300 ' einrichte betrieb
IF ckey$ = (CHR$(0) + CHR$(61)) THEN GOTO 400 ' automatik betrieb
IF ckey$ = CHR$(27) THEN GOTO 500 ' Programm beenden
IF ckey$ = CHR$(32) THEN GOSUB zeileeditieren 'Zeileeditieren
IF ckey$ = (CHR$(0) + CHR$(63)) THEN GOTO 80000 ' MDI$
IF ckey$ = ((CHR$(0) + CHR$(80))) THEN
bq = bq + 1
IF bq > aq THEN bq = aq
GOTO Anzeige
END IF
IF ckey$ = ((CHR$(0) + CHR$(72))) THEN
bq = bq - 1
END IF
IF bq < 1 THEN bq = 1
GOTO Anzeige
zeileeditieren:
LOCATE 14, 3: PRINT SPC(30);
COLOR 10, 6
LOCATE 14, 3: INPUT inputtext$
COLOR 9, 1
OPEN programnummer$ FOR OUTPUT AS #bq
WRITE #bq, inputtext$
CLOSE #bq
RETURN
200
300
400
500
80000
die zu öffnende datei hat den namen %10000.nc .
legt sie an und schreibt ein paar zeilen hinein...
ich habe da schon länger ein Problem, ich finde den fehler in meinen Programm nicht... Bitte schaut euch mein Programm mal an, vielleicht entdeckt ihr ja den fehler.
Kopiert das Programm und startet es. Es sind zwei Dateien: Eine Prog.Datei und die zweite ist die zu öffnende Textdatei. mit pfeil auf und ab könnt ihr die datei durchblättern und mit space die zeile zum editieren aufrufen. wenn ihr dann mir enter später die zeile bestätigt kommt eine fehlermeldung...
CLS
editzeilen = 150
programmnummer$ = "%10000.nc"
DIM lines1(editzeilen) AS STRING
OPEN programmnummer$ FOR INPUT AS #1
rq = 1
ret:
DO WHILE NOT EOF(1)
aq = aq + 1
IF aq > 100 AND rq = 1 THEN REDIM lines(1000): aq = 0: rq = 0: GOTO ret
LINE INPUT #1, lines1(aq)
LOOP
CLOSE 1
bq = 1
Anzeige:
COLOR 9, 1
LOCATE 13, 3: PRINT SPC(30);
LOCATE 13, 3: PRINT lines1(bq)
COLOR 10, 6
LOCATE 14, 3: PRINT SPC(30);
LOCATE 14, 3: PRINT lines1(bq + 1)
COLOR 9, 1
LOCATE 15, 3: PRINT SPC(30);
LOCATE 15, 3: PRINT lines1(bq + 2)
LOCATE 16, 3: PRINT SPC(30);
LOCATE 16, 3: PRINT lines1(bq + 3)
LOCATE 17, 3: PRINT SPC(30);
LOCATE 17, 3: PRINT lines1(bq + 4)
LOCATE 18, 3: PRINT SPC(30);
LOCATE 18, 3: PRINT lines1(bq + 5)
ck:
DO:
ckey$ = INKEY$
COLOR 0: LOCATE 23, 54: PRINT TIME$
LOOP UNTIL LEN(ckey$)
IF ckey$ = (CHR$(0) + CHR$(59)) THEN GOTO 200' manueller betrieb
IF ckey$ = (CHR$(0) + CHR$(60)) THEN GOTO 300 ' einrichte betrieb
IF ckey$ = (CHR$(0) + CHR$(61)) THEN GOTO 400 ' automatik betrieb
IF ckey$ = CHR$(27) THEN GOTO 500 ' Programm beenden
IF ckey$ = CHR$(32) THEN GOSUB zeileeditieren 'Zeileeditieren
IF ckey$ = (CHR$(0) + CHR$(63)) THEN GOTO 80000 ' MDI$
IF ckey$ = ((CHR$(0) + CHR$(80))) THEN
bq = bq + 1
IF bq > aq THEN bq = aq
GOTO Anzeige
END IF
IF ckey$ = ((CHR$(0) + CHR$(72))) THEN
bq = bq - 1
END IF
IF bq < 1 THEN bq = 1
GOTO Anzeige
zeileeditieren:
LOCATE 14, 3: PRINT SPC(30);
COLOR 10, 6
LOCATE 14, 3: INPUT inputtext$
COLOR 9, 1
OPEN programnummer$ FOR OUTPUT AS #bq
WRITE #bq, inputtext$
CLOSE #bq
RETURN
200
300
400
500
80000
die zu öffnende datei hat den namen %10000.nc .
legt sie an und schreibt ein paar zeilen hinein...