回 帖 发 新 帖 刷新版面

主题:[原创][求助]:如何从文本文件里面读取指定位置的字符

各位大侠,请问如何从一个多行文本文件中读取指定位置的字符?比如一个文件名为:1.txt,内容如下:
-425612.32563-0.326542.36
45268975.365-96542321.365
...
想从上面的文本文件里面读取第一行的第五到第八个字符,(从第二行里面读取第七到第十五个字符,)请问如何编写程序?谢谢!
请各位大侠帮忙看看:
Private Sub Command1_Click()
Dim i As Integer
Dim str As String
Dim n As Integer
Open "d:\1.txt" For Binary As #1
i = 1
n = 1
While Not EOF(1)
Get #1, 5, str
str = str & str
i = i + 1
n = n + 1
If i = 9 Then
Text1.Text = str
Close #1
Exit Sub
 
End If
 
Wend

End Sub 

回复列表 (共4个回复)

沙发

这种情况应编写一个读出函数,该函数有3个输入参数:1.全路径文件名;2.读入的起始位置;3.读入的结束位置。返回读出的字符。
函数中需要另外定义1个字节型数组,用结束位置减起始位置得到一个长度值,再用这个值重新定义字节型数组的下标。
然后用读入二进制数据的方法打开文件,将数据读入字节型数组,最后用:
函数名 = StrConv(数组名, vbUnicode)
转换为字符输出。

板凳

感谢一江秋水的回答,不过能不能说的更清楚更具体一点,这个函数如何写?如何得到数组的起始位置和结束位置?
使用get函数是否也可以按顺序从指定的位置读出字节数?谢谢!

3 楼

还是这样比较简单:

Private Sub Command1_Click()
Dim d() As String, str As String, n As Long
Open "d:\1.txt" For Input As #1
Do Until EOF(1)
  n = n + 1
  ReDim Preserve d(1 To n)
  Line Input #1, d(n)
Loop
Close #1
str = Mid(d(1), 5, 4) & vbCrLf
str = str & Mid(d(2), 7, 9)
Text1 = str
End Sub

4 楼

非常感谢!
一会试试。

我来回复

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