初学者请教:创建一文本并添加了一行数据,再次打开读取总行数,出现错误62,输入超出文件尾
时间:2011-11-07
来源:互联网
要处理的数据量较大,依据条件判断创建文本添加数据,依据条件再次打开时读取创建文本的总行数,判断最后一行的位置,然向最后一行的文件末尾添加数据。程序如下:
Open Txtlujing.Text For Input As #1
b = "5"
Do While Not EOF(1)
Line Input #1, a
strA = Mid(a, 1, 76)
strB = Mid(a, 43, 33)
a1 = LTrim(Mid(a, 36, 2))
a2 = LTrim(Mid(a, 39, 2))
d = Mid(a, 1, 5)
If a1 <> b Then
b = a1
strPath = App.Path & "\" '当前目录
strTmp = d & "2001" & b & ".Txt" '文件名称
strFileName = strPath & strTmp '指定路径名称
Open strFileName For Output As #2
Print #2, strA ' "这里写入文件内容"
Close #2
b = a1
Else
Open strFileName For Input As #2
m = 0
Do While Not EOF(1)
Line Input #2, s
m = m + 1
Loop
Close #2
Open strFileName For Append As #2
Call trim(strc$, a11$, a22$)
If a1 = a11 And a2 = a22 Then
Print #2, strc & strB
Else
Print #2, strA
End If
Close #2
b = a1
End If
Loop
Close #1
Public Sub trim(strc$, a11$, a22$)
For n = 1 To m
If n <> m Then
GoTo 10
Else
l = Len(s)
strc = Mid(s, 1, l)
a11 = LTrim(Mid(s, 36, 2))
a22 = LTrim(Mid(s, 39, 2))
End If
10 Next n
End Sub
Open Txtlujing.Text For Input As #1
b = "5"
Do While Not EOF(1)
Line Input #1, a
strA = Mid(a, 1, 76)
strB = Mid(a, 43, 33)
a1 = LTrim(Mid(a, 36, 2))
a2 = LTrim(Mid(a, 39, 2))
d = Mid(a, 1, 5)
If a1 <> b Then
b = a1
strPath = App.Path & "\" '当前目录
strTmp = d & "2001" & b & ".Txt" '文件名称
strFileName = strPath & strTmp '指定路径名称
Open strFileName For Output As #2
Print #2, strA ' "这里写入文件内容"
Close #2
b = a1
Else
Open strFileName For Input As #2
m = 0
Do While Not EOF(1)
Line Input #2, s
m = m + 1
Loop
Close #2
Open strFileName For Append As #2
Call trim(strc$, a11$, a22$)
If a1 = a11 And a2 = a22 Then
Print #2, strc & strB
Else
Print #2, strA
End If
Close #2
b = a1
End If
Loop
Close #1
Public Sub trim(strc$, a11$, a22$)
For n = 1 To m
If n <> m Then
GoTo 10
Else
l = Len(s)
strc = Mid(s, 1, l)
a11 = LTrim(Mid(s, 36, 2))
a22 = LTrim(Mid(s, 39, 2))
End If
10 Next n
End Sub
作者: xawwy_yiye 发布时间: 2011-11-07
VB code
怎么可以这样用?能打开?
Open Txtlujing.Text For Input As #1
怎么可以这样用?能打开?
作者: luobaoline 发布时间: 2011-11-07
就是这样打开的,我修改了一个语句,
Do While Not EOF(1)
Line Input #2, s
m = m + 1
Loop
这部分程序运行正确了
Do While Not EOF(1)
Line Input #2, s
m = m + 1
Loop
这部分程序运行正确了
作者: xawwy_yiye 发布时间: 2011-11-07
只是依据条件向程序最后一行添加数据的方式不对
作者: xawwy_yiye 发布时间: 2011-11-07
追加数据:
Open Txtlujing.Text For Input As #1
要改成
Open Txtlujing.Text For Append As #1
Open Txtlujing.Text For Input As #1
要改成
Open Txtlujing.Text For Append As #1
作者: chinaboyzyq 发布时间: 2011-11-07
引用 4 楼 chinaboyzyq 的回复:
追加数据:
Open Txtlujing.Text For Input As #1
要改成
Open Txtlujing.Text For Append As #1
追加数据:
Open Txtlujing.Text For Input As #1
要改成
Open Txtlujing.Text For Append As #1
以input方式打开会将原文件清空然后重新写入.
append是在文章末尾添加方式写入
+1
作者: xiaolinyouni 发布时间: 2011-11-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28