求教!为什么会出现“输入超出文件尾”的错误

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:01:42
代码如下:
Private Sub Form_Load()
Dim a, b, c, d, e, temp, content As String
Open "f:\1.txt" For Input As #1
Do Until EOF(1)
Input #1, a, b, c, d, e
temp = a & " " & b & " " & c & " " & d & " " & e
newline = Chr$(13) + Chr$(10)
content = content & temp & newline
Loop
Close #1

Open "f:\1.txt" For Output As #1
Print #1, content
Close #1
End Sub
1.txt不是空文件
muqiao520老师
这两个写法不是一样的么

我的数据是每行10个数据的,是5的倍数
我的目的是把原文件改成5个数字一行

Input #1, a, b, c, d, e
这一句是错误的..

语法

Input #filenumber, varlist
从已打开的顺序文件中读出数据并将数据指定给变量。

你的文本是用顺序文件方法写入的吗? 如果不是的话,那么,使用这种方法读取,你必须保证你的文件的数据数量是5的整倍数,不然肯定超出文件尾的..

因为你每次读取了a,b,c,d,e 这5个数据..

改为这种形式看看:

Do while not EOF(1)
Line Input #1, a
temp = a & " " & b & " " & c & " " & d & " " & e
newline = Chr$(13) + Chr$(10)
content = content & temp & newline
Loop
Close #1

那就改为Line Input,整行读入a后再做处理.

Input #1, a, b, c, d, e

这句是错误的,应该是line input #1,a '意思是将该行赋值到变量A

但你说一行里面就有很多数据,而且每个数据应该有标记比如","号来隔开的吧?根据你这种情况,应该使用split函数来处理,该函数可以将一个数组分段,根据分割副来分

比如:
a="a,b,c,d,e,f"
b=split(a,",")
msgbox b(0)
返回结果为a,如果是b(1)那么返回结果则是b,根据,来分割!

你可以使用该函数先将你的每行数据啄个分割,当然还是先用line input来读,再分割