+ -
当前位置:首页 → 问答吧 → 初学者请教:创建一文本并添加了一行数据,再次打开读取总行数,出现错误62,输入超出文件尾

初学者请教:创建一文本并添加了一行数据,再次打开读取总行数,出现错误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

作者: 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

这部分程序运行正确了

作者: xawwy_yiye   发布时间: 2011-11-07

只是依据条件向程序最后一行添加数据的方式不对

作者: xawwy_yiye   发布时间: 2011-11-07

追加数据:
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


以input方式打开会将原文件清空然后重新写入.
append是在文章末尾添加方式写入

+1

作者: xiaolinyouni   发布时间: 2011-11-07