回 帖 发 新 帖 刷新版面

主题:关于文件操作的问题

用OUTPUT模式创建一个文件(事先有程序检测文件不存在) ,并用PRINT #1,A$向文件写入内容
1.可以用RANDOM模式打开,并用LINE INPUT #1, B$、PRINT #1, C$修改吗?
2.如果可以,(假如文件有10行)先用5个LINE INPUT再用一个PRINT #可以修改第6行的内容吗?

关键是OUTPUT、INPUT、RANDOM、BINARY
与WRITE #、INPUT #、PRINT #、LINE INPUT #、PUT #、GET #
之间一定存在一一对应关系吗?

moz我知道你是这方面的专家,还请赐教

回复列表 (共4个回复)

沙发

1. 用random的print写入是可以的,但不能改变长度。
   相当于mid$()=

2. 对于上述问题2的事情,
   5个line input再用print修改是可以的,
   这只是一个定位的问题,用seek也可以代替的,只是不准确。
   而且print 第六行的内容不应该比原有的第六行内容更长,
   否则会破坏第七行的内容的。

一一对应关系是有的:
output 方式可以用 print , write ,不能用 input,get,put,seek
input  方式可以用 input,line input ,seek 不能用get,put
random 方式可以用 seek,get,put
binary 方式可以用 seek,print,get,put,input,line input
还有一些细节需要自己去试试,我虽然记不清楚那么多了,但这些事情一试就知道了。

板凳

我知道你所说的一些对应关系(书上都有)
我是问一定要遵循这样的对应关系吗?
我用RANDOM模式打开文件,用input,line、print读写报错,可能不能这样吧
我只是要对一个文件边读边写,频繁的在output、input模式间切换麻烦罢了

RANDOM模式怎样将文件中的一行作为一个字符串读写呢?
关键是文件内容不确定,可能有一些符号和空格。
还请赐教

3 楼

当然要遵循这些规则了,
但是你可以在你自己的程序作一些转换的。

比如你说的要对一个文件边读边写的话,
甚至可以把这个文件用两个文件号两种方式来打开的,
当然这种做法比较危险,容易出现不可预知的问题。

换成我,我会用二进制binary方式打开,可读可写。
可以用line input,
也可以用a$=input$(16383,#n)
如果只要一行的话,在a$中找到回车换行符 chr$(13)+chr$(10) 然后截断就行了。

4 楼

呵呵,看来还是不能乱来,老老实实在的做转换算了。
谢谢啊

我来回复

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