vb编程,关于查找txt文件匹配行后再读取几行数据的问题,求高手解答!

我正在设计一个查询系统,就是先输入id,然后即可查询出此id的基本信息。
文本如下
1234
0
10.5
0.842
2011/6/14
20分钟
1235
10.5
22.5
0.842
2011/6/14
25分钟
1236
22.5
41
0.842
2011/6/14
1小时
1237
41
65.5
0.842
2011/6/15
4小时

文本中的1234,1235,1236....就是需要索引的id号,请问如何编写程序,才能使得我在

text1(0).text中输入“1234”时
点击“查询”按钮,可以把txt文本“1234”所在行的后5行数据写入text1(1)到(5)中去


再加上查询不到id号就报错,例如输入12348,就会执行
if ....... then msgbox"超出记录范围!",vbokonly,"警告":exit sub

Private Sub Command1_Click()
Dim id() As String
Dim lenth As Integer

Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, tmp
lenth = lenth + 1
Loop
Close #1

ReDim id(0 To lenth) As String
Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Input #1, id(i)
i = i + 1
Loop
Close #1

For i = 1 To lenth - 1
If id(i) = Text1(0).Text Then
Text1(1).Text = id(i + 1)
Text1(2).Text = id(i + 2)
Text1(3).Text = id(i + 3)
Text1(4).Text = id(i + 4)
Text1(5).Text = id(i + 5)
End If
Next

End Sub追问

你的程序虽然有些小错误,但是我修改后已经能运行了,请问能否在加上查询不到id号就报错,例如if ....... then msgbox"超出记录范围!",vbokonly,"警告":exit sub
还有,因为我是初学者,所以能不能请你把语句的作用简单些注释一下?谢谢,如果完成,我会把分给你的。

追答

Private Sub Command1_Click()
Dim id() As String
Dim lenth As Integer

''''''''''''''以下是读取文本文件的长度,赋值给lenth
Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, tmp
lenth = lenth + 1
Loop
Close #1

'''''''以下是把文本文件的值赋值给id(i)数组
ReDim id(0 To lenth) As String '重新定义数组id(i),数组个数是lenth
Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Input #1, id(i)
i = i + 1
Loop
Close #1

'''''''''''''''以下是把text1(0).text的值在id()数组里循环对照,如果相等,则,其他的text等于依次往下的几个数
For i = 1 To lenth - 1
If id(i) = Text1(0).Text Then
Text1(1).Text = id(i + 1)
Text1(2).Text = id(i + 2)
Text1(3).Text = id(i + 3)
Text1(4).Text = id(i + 4)
Text1(5).Text = id(i + 5)
elseif i=lenth-1 then '''''''此处为新增
msgbox ("超出记录范围!") '''''''此处为新增
End If
Next

End Sub

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-15
我给你提供思路:
1,定义一个动态数组
2,Line Input语句读取文本文件到动态数组中
3,循环查找动态数组
第2个回答  2011-06-15
假充文本文件名为c:\1.txt,程序代码如下:
Private Sub command1_click()
Dim R As String, S As String
S = Text1(0).Text
Open "c:\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, R
If R = S Then Exit Do
Loop
Line Input #1, R
Text1(1).Text = R
Line Input #1, R
Text1(2).Text = R
Line Input #1, R
Text1(3).Text = R
Line Input #1, R
Text1(4).Text = R
Line Input #1, R
Text1(5).Text = R
Close #1
End Sub

VB如何读取TXT文件,一行一行读取,读取一行msgbox“这一行的内容”,然后...
s Text1.Text = Text1.Text & s & vbCrLf i = i + 1 Loop Close #1 Text3 = i '文本总行数 strj = Split(Text1, vbCrLf) j = UBound(strj) j = InputBox("输入需要显第几句", j) Debug.Print "第" & j & "句:";...

vb读取txt文件行数问题
Line Input就是每次读取一行,n = n + 1就是每次读取一行时就把n递增1,所以程序运行完毕后n就是行数了。还有更简单的方法:Open "c:\\1.txtt" For Binary As #1 MsgBox "文件有 " & UBound(Split(Input(LOF(1), #1), vbCrLf)) + 1 & " 条记录。", vbInformation Close #1 三行即可...

vb怎么获得txt文件中的行数?怎么实现?
Dim Oc,Fs,S,X Set Fs = Oc.OpenTextFile("C:\\Test.Txt", 1)'用FSO打开TXT文件 S = Fs.ReadAll'获取全文 Fs.Close'关闭文件 X = (Len(S) - Len(Replace(S, vbCrLf, ""))) \/ Len(vbCrLf) + 1 '统计总行数:用字符串替换法得到一共多少个回车,然后再加一就得到总行数了 ...

VB怎么读TXT文件行数和列数!
Private Sub Command1_Click() '第一行 Dim v Open "" & App.Path & "\\1.txt" For Input As #1 Do While Not EOF(1)Line Input #1, temp x = x + 1 If x = 1 Then v = Split(temp, " ")For i = 0 To UBound(v)Text1(i).Text = v(i)Next End If Loop Close...

VB如何打开指定TXT文件,然后从中读取相应内容。
'打开文件 open "D:\/1.txt"for input as 1 '读取一行到字符串中 input a '分析字符串中李宁的位置 x=instr(a,"李宁")'取得子字符串 b=mid$(a,x,5)'去掉李宁 ...

vb 从txt里面查找一段指定字符串?并取出后面的内容?
string2 必要参数。被搜索的字符串表达式。Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。设置 compare 参数设置为:常数 值 描述 vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。vbBinaryCompare 0 ...

vb 读取txt一行多项数据
Private Sub Command1_Click()Open "C:\\123.txt" For Input As #1 n = 0 Do While Not EOF(1)Line Input #1, a n = n + 1 If n = 3 Then Text1.Text = a Exit Do End If Loop Close #1 End Sub 这样就可以了。用n来控制行数。当到达了第三行,就输出到文本框,然后退出...

用vb编写一个程序,对txt文档中的数据进行查找并输出
s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbNewLine)Close #1 Else MsgBox "未找到文件:" & s End If For i = 0 To 3 n = InputBox("输入4个二位数字,第" & i + 1 & "个:")If IsNumeric(n) Then If Val(n) > 9 And Val(n) < 100 Then arr(i) = n El...

vb.net 怎么写入和多行读取txt文件,而且多次写如之前的不被覆盖?
.net应该提供了此类函数。如C#就有File.AppendAllText(filename,string)用于追加内容,File.ReadAllLine(filename)用于读取多行。

VB读入TXT文件后总是会多几行回车~~在线等~~~急
回车符就在你那个a.txt中,把那里的回车符删除掉不就行了?或者把 Lines = Lines & NextLine & Chr(13) & Chr(10)改为:if NextLine <> chr(13) and NextLine <> chr(10) then Lines = Lines & NextLine & Chr(13) & Chr(10)...

相似回答
大家正在搜