Qbasic: недопустимый номер файла в * номере строки *
Я пишу программу в GW-BASIC. По некоторым причинам у меня есть следующая ошибка:
"Numéro de fichier illégal en 4712"
которые могут быть переведены на английский язык,
"незаконный номер файла в 4712"
Вот часть моего кода:
51 Chemin$ = "T:\Basic\Calculs\" + NF$
52 ON ERROR GOTO 60
53 MKDIR Chemin$
54 END
... ( a lot of code not important to solve this problem :) )
4711 CHDIR Chemin$
4712 OPEN "Intdrcrc.doc" FOR APPEND AS #3
4712 PRINT #3, "*---------------------------------------------------------------------------------------------------------------*"
4713 PRINT #3, USING "* Centre ##### \ \#######.### #######.### Intersect Droite Cercler *";IC,NC$,XC#,YC#
4714 PRINT #3, USING "* Point ##### \ \#######.### #######.### R=#######.### *";IP,NP$,XP#,YP#,R#
4715 PRINT #3, USING "* 1er Intersection M1 ##### \ \ #######.### #######.### *";I1,N1$,XM1#,YM1#
4716 PRINT #3, USING "* 2e Intersection M2 ##### \ \ #######.### #######.### *";I2,N2$,XM2#,YM2#
4717 PRINT #3, "*---------------------------------------------------------------------------------------------------------------*"
4718 CLOSE #3
4719 CHDIR "T:\Basic"
У меня была такая же проблема в предыдущих строках, поэтому я изменил # after "APPEND"
, но здесь, на line 4712
изменение # не решает проблему..
Я надеюсь, что я достаточно ясно,
Большое спасибо за ваши предложения!
:)
4 ответа
Эта вторая строка пронумерована как 4712, заменяя первую? Если это так, программа попытается распечатать файл № 3, который не был открыт.
4712 OPEN "Intdrcrc.doc" FOR APPEND AS #3
4712 PRINT #3, "*---------------------------------------------------------------------------------------------------------------*"
Почему бы не попробовать:
4702 CHDIR Chemin$
4703 OPEN "Intdrcrc.doc" FOR OUTPUT AS #3
4712 PRINT #3, "*---------------------------------------------------------------------------------------------------------------*"
4713 PRINT #3, USING "* Centre ##### \ \#######.### #######.### Intersect Droite Cercler *"; IC, NC$, XC#, YC#
4714 PRINT #3, USING "* Point ##### \ \#######.### #######.### R=#######.### *"; IP, NP$, XP#, YP#, R#
4715 PRINT #3, USING "* 1er Intersection M1 ##### \ \ #######.### #######.### *"; I1, N1$, XM1#, YM1#
4716 PRINT #3, USING "* 2e Intersection M2 ##### \ \ #######.### #######.### *"; I2, N2$, XM2#, YM2#
4717 PRINT #3, "*---------------------------------------------------------------------------------------------------------------*"
4718 CLOSE #3
Кажется Intdrcrc.doc
файл не существует (хотя я не могу быть уверен в этом, не глядя на остальную часть вашего кода).
Что вы можете попробовать,
- замещать
OPEN "Intdrcrc.doc" FOR APPEND AS #3
сOPEN "Intdrcrc.doc" FOR OUTPUT AS 3
и попробуйте, если это дает ошибку. Это просто для проверки, конечно. Вы должны вернуться кAPPEND
потом. Мы хотим увидеть, если ошибка исчезла сOUTPUT
, Если это так, это, вероятно, означает, что файл не существует, как вы ожидали.
Во-вторых, вам нужно реализовать некоторую обработку ошибок после OPEN
команда.
Что вы можете сделать, это что-то вроде этого,
4710 ...
4711 SHARED errorflag
4712 OPEN "Intdrcrc.doc" FOR APPEND AS 1
4713 IF errorflag <> 0 THEN
4714 errorflag = 0
4715 CLOSE
4716 PRINT "File not found - press return to continue."
4717 INPUT "", a$
4718 EXIT SUB
4719 END IF
4720 PRINT #3, "*------------------------------------------*"
4721 ...
Так что мы можем знать, что-то еще, если произойдет ошибка.
Итак, я написал это:
4702 CHDIR Chemin$
4703 OPEN "Intdrcrc.doc" FOR APPEND AS 3
4704 IF errorflag <> 0 THEN
4705 errorflag = 0
4706 CLOSE
4707 PRINT "File not found - press return to continue"
4708 INPUT "", a$
4709 EXIT SUB
4710 END IF
4712 PRINT 3, "*---------------------------------------------------------------------------------------------------------------*"
4713 PRINT 3, USING "* Centre ##### \ \#######.### #######.### Intersect Droite Cercler *";IC,NC$,XC#,YC#
4714 PRINT 3, USING "* Point ##### \ \#######.### #######.### R=#######.### *";IP,NP$,XP#,YP#,R#
4715 PRINT 3, USING "* 1er Intersection M1 ##### \ \ #######.### #######.### *";I1,N1$,XM1#,YM1#
4716 PRINT 3, USING "* 2e Intersection M2 ##### \ \ #######.### #######.### *";I2,N2$,XM2#,YM2#
4717 PRINT 3, "*---------------------------------------------------------------------------------------------------------------*"
4718 CLOSE 3
4719 CHDIR "T:\Basic"
Результат: в окне gwbasic cmd написано: "Файл не найден - нажмите Return для продолжения"
И тогда создается файл "intdrcrc.doc". Но он пуст, как будто "PRINT 3" не работает