主题:关于文件操作的问题
咖啡猪
[专家分:290] 发布于 2005-12-03 13:57:00
用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个回复)
沙发
moz [专家分:37620] 发布于 2005-12-03 17:44:00
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
还有一些细节需要自己去试试,我虽然记不清楚那么多了,但这些事情一试就知道了。
板凳
咖啡猪 [专家分:290] 发布于 2005-12-05 01:09:00
我知道你所说的一些对应关系(书上都有)
我是问一定要遵循这样的对应关系吗?
我用RANDOM模式打开文件,用input,line、print读写报错,可能不能这样吧
我只是要对一个文件边读边写,频繁的在output、input模式间切换麻烦罢了
RANDOM模式怎样将文件中的一行作为一个字符串读写呢?
关键是文件内容不确定,可能有一些符号和空格。
还请赐教
3 楼
moz [专家分:37620] 发布于 2005-12-05 20:17:00
当然要遵循这些规则了,
但是你可以在你自己的程序作一些转换的。
比如你说的要对一个文件边读边写的话,
甚至可以把这个文件用两个文件号两种方式来打开的,
当然这种做法比较危险,容易出现不可预知的问题。
换成我,我会用二进制binary方式打开,可读可写。
可以用line input,
也可以用a$=input$(16383,#n)
如果只要一行的话,在a$中找到回车换行符 chr$(13)+chr$(10) 然后截断就行了。
4 楼
咖啡猪 [专家分:290] 发布于 2005-12-06 01:08:00
呵呵,看来还是不能乱来,老老实实在的做转换算了。
谢谢啊
我来回复