回 帖 发 新 帖 刷新版面

主题:建立新顺序文件写入记录时的问题

QBASIC建立新顺序文件写入记录时,如果字段为字符串型,为什么用PRINT # 建立后,在读入全部记录时没读完就会提示已到文件尾?如何引入定界符。而用WRITE # 建立时,由于对输出的字符串,因为在两端加了双引号,就能读入完整的记录?如下例:
OPEN "stud1.dat" FOR OUTPUT AS #1
FOR i = 1 TO 4
  INPUT num$, nam$, score
A: PRINT #1, num$, nam$, score  `如果此句换成WRITE #1, num$, nam$, score 屏幕就能完整显示
NEXT i
CLOSE #1
OPEN "stud1.dat" FOR INPUT AS #1
FOR i = 1 TO 4
 INPUT #1, num$, nam$, score
  PRINT num$, nam$, score
NEXT i
CLOSE #1
END

显示结果:
01            Mark           567 
02            June           638 
03            Wendy          549 
04            Carl           531 
* 为什么如果A句用PRINT #1, num$, nam$, score ,输出时字符串两端没有双引号,就不能读入完整的记录?而提示“end of file”?请哪位高手帮助一下,谢谢!

回复列表 (共2个回复)

沙发

你可以在出错停止的时候
在立即窗口那里调试一下变量的值: num$, nam$ .....

其实变长字符串并没有规定它的长度是多少,
所以在使用 input 的时候,除非找到有双引号定界或者回车换行符等特殊符号,才能自动分清楚是哪个字符串所需要的字符,否则,一直到文件末的所有字符都读到num$(第一个字符串)里去了,楼主的情况应该是这样子的,不妨验证一下.

板凳


[em3]对于moz的大力相助,本菜鸟表示万分感激,在此致谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册