请教:VB读取.txt数据的问题
要读取c:\a.txt 文件 内的数据文件 数据文件不大 百行之内大致内容为:
aaaa
111 222 333= '数据1 以等号结束
444 555 666 777 '数据2
888= '数据文件2 以等号结束
bbbb
一行行的读取到tline
用split函数 将每一行数据读取到str()数组
通过对str(0) 判断是否为需要的数据 再判断right$(str(UBound(str)),1)="="
看数据读取是否到尾
这儿样能对数据1 读取 对数据2样式的就没有办法了
请教高手
程序如下
Open fname For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, fline ' 读入一行数据并将其赋予fline变量。
Form1.Print fline ' 为了测试 在窗口中显示数据。到这里都还正常
str = Split(str1, " ", -1, 1) ’空格为分隔符 读取全部字符串
If str(0) = "111" then ’这里就不对了 提示 错误 9下标越界
Print str(0)
End If --------------------编程问答-------------------- 看你的str()定义,是str(a),还是str(1 to 100) --------------------编程问答-------------------- Open fname For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, fline ' 读入一行数据并将其赋予fline变量。
Form1.Print fline ' 为了测试 在窗口中显示数据。到这里都还正常
str = Split(str1, " ", -1, 1) ’空格为分隔符 读取全部字符串
If str(0) = "111" then ’这里就不对了 提示 错误 9下标越界
Print str(0)
End If --------------------编程问答-------------------- Open fname For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, fline ' 读入一行数据并将其赋予fline变量。
Form1.Print fline ' 为了测试 在窗口中显示数据。到这里都还正常
str = Split(fline, " ", -1, 1) ’空格为分隔符 读取全部字符串
If str(0) = "111" then ’这里就不对了 提示 错误 9下标越界
Print str(0)
End If --------------------编程问答-------------------- Private Sub Command1_Click()
Dim Str() As String
Open "c:\a.txt" For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, fline ' 读入一行数据并将其赋予fline变量。
'Form1.Print fline ' 为了测试 在窗口中显示数据。到这里都还正常
Str = Split(fline, " ", -1, 1) '空格为分隔符 读取全部字符串
If Str(0) = "111" Then '这里就不对了 提示 错误 9下标越界
Print Str(0)
End If --------------------编程问答-------------------- up --------------------编程问答-------------------- up --------------------编程问答-------------------- Open fname For Input As #1 ' 打开文件。
Do Until EOF(1) ' 循环至文件尾。
Line Input #1, fline ' 读入一行数据并将其赋予fline变量。
Form1.Print fline ' 为了测试 在窗口中显示数据。到这里都还正常
If (left(fline, 3) = "111") And (Right(fline, 1) = "=") Then
str = Split(fline, " ") ’空格为分隔符 读取全部字符串
Print str(0)
End If
Loop
Close #1 --------------------编程问答--------------------
Open fname For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, fline ' 读入一行数据并将其赋予fline变量。
Form1.Print fline ' 为了测试 在窗口中显示数据。到这里都还正常
str = Split(str1, " ", -1, 1) ’空格为分隔符 读取全部字符串
if ubound(str)>-1 then'ubound(str)=-1,如果str1=“888=”
If str(0) = "111" then ’这里就不对了 提示 错误 9下标越界
Print str(0)
end if
End If
--------------------编程问答-------------------- 是否需要在读str(0)之前对str()进行ReDim Preserve呢? --------------------编程问答-------------------- Option Explicit
Dim i&, aa$, TmpStr$(), S
Private Sub Form_Load()
Open "c:\a.txt" For Input As #1
aa = StrConv(InputB(LOF(1), 1), vbUnicode)
Close #1
End Sub
Private Sub Command1_Click()
S = Split(aa, vbNewLine)
ReDim Preserve TmpStr$(UBound(S))
Me.Cls
For i = 0 To UBound(S)
TmpStr(i) = S(i)
'Print TmpStr(i) '显示全部数据
'想怎么判断条件自己加
If Right(TmpStr(i), 1) = "=" Then Print TmpStr(i)
Next i
End Sub
--------------------编程问答-------------------- 圣诞快乐,借宝地要点回复分好发个问题,谢谢 --------------------编程问答-------------------- 啊?10 楼 cbm666 不是百度贴吧的吧主么? 哇哈哈,回答你的问题,你太幸运了,唉,我的问题还没有足够的分来问呢。。。 --------------------编程问答-------------------- 哈哈啥问题?就在这里发出来看看吧 --------------------编程问答-------------------- 还是没看明白,不懂 --------------------编程问答--------------------
兄弟这头像不错啊! --------------------编程问答-------------------- 好像,如果先判断没有'='的加上'='是否会更好处理呢? --------------------编程问答-------------------- up --------------------编程问答-------------------- 只顶 --------------------编程问答-------------------- up
补充:VB , 基础类