易码技术论坛

 找回密码
 加入易码
搜索
楼主: laugj

[GVBASIC]出错分析->讨论

[复制链接]
发表于 2005-8-2 16:17:00 | 显示全部楼层
在打开文件时,我的WQXtc1000s会出现这样的错误!
OPEN "p" APPEND AS #1
WRITE #1,W$
CLOSE #1
其中“P”是小写的
执行后就删除不了 p.DAT 文件,按热键保留后,该文件会不见!
发表于 2005-10-23 02:04:00 | 显示全部楼层
应该是文曲星的常见问题,尽量不要用小写。另外,文件可能会出现打不开的情况,用

OPEN "p" FOR OUTPUT AS 1

CLOSE 1

应该就行了
发表于 2005-12-27 13:43:00 | 显示全部楼层
at 语句是干吗用的?
发表于 2005-12-30 10:40:00 | 显示全部楼层
呵呵!
发表于 2006-1-27 10:18:00 | 显示全部楼层
有时侯打开随机文件就没有响应,死机.

有时侯随机文件保存后保存的记录及其以后的记录全变成FF(CHR$(255)),为什么??
发表于 2006-5-21 12:23:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-8-26 11:34:04 | 显示全部楼层
呃。。。。估计是12行“:"太多了,多分几行试试。。。
发表于 2006-9-17 00:00:40 | 显示全部楼层
我在运行文件中断并写随机文件的时候连弄三次以上就会发生严重的错误,之后文件打开就出错!
发表于 2006-10-15 13:23:15 | 显示全部楼层
引用第56楼luwenjietc2005-07-04 18:35发表的“”:
有没有什么软件电脑上测试basic程序啊  文曲星上好麻烦啊 !!!!!!!!!!!!!!有没有啊  [em06]


有没有什么软件电脑上测试basic程序啊  文曲星上好麻烦啊 !!!!!!!!!!!!!!有没有啊  ?
有没有什么软件电脑上测试basic程序啊  文曲星上好麻烦啊 !!!!!!!!!!!!!!有没有啊  ?
发表于 2006-10-20 23:47:45 | 显示全部楼层
我从前也比较喜欢的,现在星星坏了!
发表于 2006-10-23 02:19:34 | 显示全部楼层
我有一次在NC1020上用GVBasic中的CALL语句:xx CALL 16487,结果发现它调用了系统中的开机画面。为什么?
发表于 2007-7-3 12:04:18 | 显示全部楼层
文曲星  性能根本就不可言语  经常出错乃是系统不稳定 的表现  尤其是一些屏蔽了POKE\的 GVBASIC系统  更是由于原本稳定的环境被破坏而没有被修复而导致更加的不稳定-!-
不是嘛??可恶!
大家还是学习LAVA吧!!
发表于 2007-7-4 09:46:09 | 显示全部楼层
BASIC的限制太多了.
14400的随机文件居然读不出来了!
发表于 2007-8-7 20:33:03 | 显示全部楼层
帮我看看
如果运行程序 选2
进行难度选择 选5 混合运算
在退到主界面 选1 开始
结果:?SYNTAX ERROR IN 0 (没指示问题在那!?)

四则运算
10 CLS
20 DIM OPERAND(6),OPERATOR(6),EPS(12)
30 DIM PRIORITY(6,6),STACK1(6),STACK2(6)
40 RANGE =10:AMOUNT =10IFFICULTY =1
50 FOR I =0  TO 6
60 FOR J =0  TO 6
70 READ PRIORITY(I,J)
80 NEXT J
90 NEXT I
200 CLS
210 LOCATE 1,4: PRINT "小学四则运算": PRINT "1,开始测试"
220 PRINT "2,选择难度"
230 PRINT "3,题目数量"
240 PRINT "请选择(1-3):";
250 LOCATE 5,13:CHOICE$ =INKEY$
252 IF ASC(CHOICE$) =27  THEN GOTO 9999
260 IF NOT (CHOICE$ ="b" OR CHOICE$ ="n" OR CHOICE$ ="m") THEN GOTO 200
272 IF CHOICE$ ="b" GOTO 400
273 IF CHOICE$ ="n" GOTO 500
274 IF CHOICE$ ="m" GOTO 600
400 IF DIFFICULTY <6  THEN IF DIFFICULTY =5  THEN GOTO 1000  ELSE GOTO 700
500 CLS
510 PRINT "1,加法 2,减法": PRINT "3,乘法 4,除法"
520 PRINT "5,四则混合 6,小于10": PRINT "7,小于100"
540 PRINT "请选择(1-7):";
550 LOCATE 5,13:CHOICE$ =INKEY$
562 IF CHOICE$ ="b" THEN DIFFICULTY =1: GOTO 200
563 IF CHOICE$ ="n" THEN DIFFICULTY =2: GOTO 200
564 IF CHOICE$ ="m" THEN DIFFICULTY =3: GOTO 200
565 IF CHOICE$ ="g" THEN DIFFICULTY =4: GOTO 200
566 IF CHOICE$ ="h" THEN DIFFICULTY =5: GOTO 200
567 IF CHOICE$ <>"j" AND CHOICE$ <>"t" THEN GOTO 500
570 IF CHOICE$ ="j" THEN RANGE =10  ELSE IF CHOICE$ ="t" THEN RANGE =100
580 GOTO 200
600 CLS
610 PRINT : PRINT "请输入题目数量:";
620 INPUT " ";A$
630 AMOUNT =INT( VAL(A$))
640 IF AMOUNT <=0  THEN GOTO 600
660 GOTO 200
700 REM 简单运算
701 RIGHT =0
710 FOR TIMES =1  TO AMOUNT
730 NUM1 =INT(RANGE *RND(1))
740 NUM2 =INT(RANGE *RND(1))
750 IF DIFFICULTY =4  AND NUM2 <=1  THEN GOTO 740
760 ON DIFFICULTY  GOSUB 3500,3600,3700,3800
770 IF ANSWER <0  THEN GOTO 730
775 IF ANSWER <>INT(ANSWER) AND DIFFICULTY =4  THEN GOTO 730
780 CLS : PRINT NUM1;
790 ON DIFFICULTY  GOSUB 2510,2520,2530,2540
800 PRINT NUM2;"=";
810 INPUT REPLY$
815 IF LEN(REPLY$) >0  AND VAL(REPLY$) =0  AND REPLY$ <>"0" THEN GOTO 780
820 IF ABS( VAL(REPLY$) -ANSWER) <.01  THEN PRINT "太棒了!^_^":RIGHT =RIGHT +1: GOTO 830
825 PRINT "加油喔!": PRINT "正确答案:"; INT(ANSWER +0.5)
830 IF TIMES <>AMOUNT  THEN PRINT "按任意键继续...";: GOSUB 3900
840 NEXT TIMES
890 PRINT "总共答对:";RIGHT;" 答错:",AMOUNT -RIGHT
900 PRINT "是否继续(Y/N)";
910 CON$ =INKEY$
920 IF CON$ <>"n" THEN GOTO 700
930 GOTO 200
1000 REM 四则混合运算
1001 RIGHT =0
1010 FOR TIMES =1  TO AMOUNT
1019 REM 生成表达式
1020 FOR I =0  TO 6
1024 OPERAND(I) =0:OPERATOR(I) =0
1050 EPS(I) =0:EPS(12 -I) =0
1060 NEXT I
1069 REM NUM:操作数的个数(2-4)
1070 NUM =INT(3 *RND(1)) +2
1080 FOR I =0  TO NUM -1
1090 OPERAND(I) =INT(RANGE *RND(1))
1110 NEXT I
1120 IF INT(4 *RND(1)) =1  AND NUM <>2  THEN GOTO 1170
1130 FOR I =0  TO NUM -2
1140 OPERATOR(I) =INT(4 *RND(1)) +1
1150 NEXT I
1160 GOTO 1300
1169 REM 生成带括号的表达式
1170 BRACKET =INT((NUM -1) *RND(1))
1180 FOR I =0  TO NUM
1190 OPERATOR(I) =INT(4 *RND(1)) +1
1200 NEXT I
1210 OPERATOR(BRACKET) =5
1220 OPERATOR(BRACKET +2) =6
1299 REM 为计算表达式的值做准备
1300 J =0:I =0:EXPROI =0
1310 WHILE INT(I +0.5) <INT(NUM +0.5)
1320 IF OPERATOR(J) =5  THEN J =J +1:EPS(EXPROI) =-5:EXPROI =EXPPOI +1
1330 EPS(EXPPOI) =OPERAND(I):EXPROI =EXPPOI +1
1340 ON OPERATOR(J) GOSUB 2000,2100,2200,2300
1350 IF OPERATOR(J) =6  THEN J =J +1:EPS(EXPPOI) =-6:EXPPOI =EXPPOI +1: GOTO 1340
1360 I =I +1:J =J +1
1370 WEND
1390 EPS(EXPPOI) =-7
1499 REM 计算运算式的值
1500 ST1 =0:ST2 =0:EXPPOI =0
1510 STACK2(ST2) =-7:ST2 =ST2 +1
1520 CH =EPS(EXPPOI):EXPPOI =EXPPOI +1
0 ] 1530  WHILE NOT (CH -7  AND STACK2(ST2 -1) =-7)
1540 IF CH >0  THEN GOSUB 1570  ELSE GOSUB 1580
1550 WEND
1560 GOTO 1600
1570 STACK1(ST1) =CH:ST1 =ST1 +1:CH =EPS(EXPPOI):EXPPOI =EXPPOI +1
1575 RETURN
1580 ON PRIORITY( -STACK2(ST2 -1) -1, -CH -1) GOSUB 3100,3200,3300
1585 RETURN
1599 REM 判断用户答案是否正确
1600 IF STACK1(ST1 -1) <0  THEN GOTO 1020
1610 ANSWER =STACK1(ST1 -1)
1615 CLS
1620 FOR K =0  TO EXPPOI -1
1630 IF EPS(K) >=0  THEN PRINT EPS(K); ELSE ON -EPS(K) GOSUB 2510,2520,2540,2550,2560
1650 NEXT K
1660 PRINT "=";
1670 INPUT REPLY$
1675 IF LEN(REPLY$) >0  AND VAL(REPLY$) >0  AND VAL(REPLY$ =0  AND REPLY$ <>"0" THEN GOTO 1615
1680 IF ABS( VAL(REPLY$) -ANSWER) <.01  THEN GOSUB 1910  ELSE GOSUB 1930
1690 IF TIMES <>AMOUNT  THEN PRINT "按任意键继续...";: GOSUB 3900
1700 NEXT TIMES
1710 PRINT "总共答对:";RIGHT;" 答错:";AMOUNT -RIGHT
1720 PRINT "是否继续(Y/N)";
1730 CON$ =INKEY$
1740 IF CON$ <>"n" THEN GOTO 1000
1800 GOTO 200
1910 PRINT "太棒了!^_^": PRINT =RIGHT +1
1920 RETURN
1930 PRINT "加油喔!": PRINT "正确答案:";: IF ANSWER <1  THEN PRINT "0";
1940 PRINT INT(ANSWER *1000 +0.5) /1000] 1950  RETURN
2000 EPS(EXPROI) =-1:EXPPOI =EXPPOI +1
2010 RETURN
2100 EPS(EXPPOI) =-2:EXPPOI =EXPPOI +1
2110 RETURN
2200 EPS(EXPPOI) =-3:EXPPOI =EXPPOI +1
2210 RETURN
2300 EPS(EXPPOI) =-4:EXPPOI =EXPPOI +1
2310 RETURN
2510 PRINT "+";: RETURN
2520 PRINT "-";: RETURN
2530 PRINT "X";: RETURN
2540 PRINT "/";: RETURN
2550 PRINT "(";: RETURN
2560 PRINT ")";: RETURN
3100 STACK2(ST2) =CH:ST2 =ST2 +1
3310 CH =EPS(EXPPOI):EXPPOI =EXPPOI +1
3120 RETURN
3200 ST2 =ST2 -1:STACK2(ST2) =0
3210 CH =EPS(EXPPOI):EXPPOI =EXPPOI +1
3220 RETURN
3300 ST2 =ST2 -1:THETA =STACK(ST2):STACK2(ST2) =0
3310 ST1 =ST1 -1:NUM2 =STACK1(ST1):STACK1(ST1) =0
3320 ST1 =ST1 -1:NUM1 =STACK1(ST1):STACK1(ST1) =0
3330 ON -THETA  GOSUB 3500,3600,3700,3810
3340 STACK1(ST1) =ANSWER:ST1 =ST1 +1
3350 IF THETA =-4  AND ANSWER =9999  THEN GOTO 1020
3360 RETURN
3500 ANSWER =NUM1 +NUM2: RETURN
3600 ANSWER =NUM1 -NUM2: RETURN
3700 ANSWER =NUM1 *NUM2: RETURN
3800 ANSWER =NUM1 /NUM2: RETURN
3810 IF NUM2 =0  THEN ANSWER =9999  ELSE ANSWER =NUM1 /NUM2
3820 RETURN
3900 KEYVAL$ =CHR$(255)
3910 WHILE 1
3920 IF KEYVAL$ <>INKEY$THEN GOTO 3940
3930 WEND
3940 RETURN
4001 DATA 3,3,1,1,1,3,3
4002 DATA 3,3,1,1,1,3,3
4003 DATA 3,3,3,3,1,3,3
4004 DATA 3,3,3,3,1,3,3
4005 DATA 1,1,1,1,1,2,0
4006 DATA 3,3,3,3,0,3,3
4007 DATA 1,1,1,1,1,0,2
9999 END
 楼主| 发表于 2005-1-9 12:56:27 | 显示全部楼层 |阅读模式
大家把自己的GVBASIC出错的情况以及代码写出来,我会尽全力帮助大家解答


另外此帖谢绝灌水哦-_-b~!
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 05:08 , Processed in 0.011066 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表