*行号*

问题描述 投票:0回答:4

我正在用 GW-BASIC 编写一个程序。由于某些原因,我出现以下错误:

“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
处,更改#并不能解决问题..

我希望我说得足够清楚,

非常感谢您的建议!

:)

syntax-error gw-basic illegal-instruction
4个回答
1
投票

编号为 4712 的第二行是否取代了第一行?如果是这样,程序将尝试打印到未打开的文件#3。

4712 OPEN "Intdrcrc.doc" FOR APPEND AS #3
4712 PRINT #3,       "*---------------------------------------------------------------------------------------------------------------*"

0
投票

似乎

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 ...

以便我们在发生错误时可以知道更多信息。


0
投票

为什么不尝试:

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

-1
投票

所以我写了这个:

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 窗口中写入:“找不到文件 - 按回车键继续”

然后创建文件“intdrcrc.doc”。但它是空的,好像“PRINT 3”不起作用

© www.soinside.com 2019 - 2024. All rights reserved.