请教:VB读取.txt数据的问题

huangyi021 2009-12-23 04:47:28
要读取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
...全文
352 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
linc_M 2009-12-25
  • 打赏
  • 举报
回复
up
liguicd 2009-12-25
  • 打赏
  • 举报
回复
只顶
stayor 2009-12-24
  • 打赏
  • 举报
回复

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


of123 2009-12-24
  • 打赏
  • 举报
回复
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
goosen 2009-12-24
  • 打赏
  • 举报
回复
up
cqq_chen 2009-12-24
  • 打赏
  • 举报
回复
好像,如果先判断没有'='的加上'='是否会更好处理呢?
cqq_chen 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 of123 的回复:]
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
[/Quote]
兄弟这头像不错啊!
heqingbb 2009-12-24
  • 打赏
  • 举报
回复
还是没看明白,不懂
cbm6666 2009-12-24
  • 打赏
  • 举报
回复
哈哈啥问题?就在这里发出来看看吧
feixunwb 2009-12-24
  • 打赏
  • 举报
回复
啊?10 楼 cbm666 不是百度贴吧的吧主么? 哇哈哈,回答你的问题,你太幸运了,唉,我的问题还没有足够的分来问呢。。。
feixunwb 2009-12-24
  • 打赏
  • 举报
回复
圣诞快乐,借宝地要点回复分好发个问题,谢谢
cbm6666 2009-12-24
  • 打赏
  • 举报
回复
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

neilrose 2009-12-24
  • 打赏
  • 举报
回复
是否需要在读str(0)之前对str()进行ReDim Preserve呢?
贝隆 2009-12-23
  • 打赏
  • 举报
回复
up
东方之珠 2009-12-23
  • 打赏
  • 举报
回复
up
chinaboyzyq 2009-12-23
  • 打赏
  • 举报
回复
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
jhone99 2009-12-23
  • 打赏
  • 举报
回复
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
jhone99 2009-12-23
  • 打赏
  • 举报
回复
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
windyhero1983 2009-12-23
  • 打赏
  • 举报
回复
看你的str()定义,是str(a),还是str(1 to 100)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧