我要将一个文本c:\data.txt中的数据读到我的程序中的text1.text,普通方法不能解决,我是菜菜,需要高手指点一下。文档内容大致如下:
wz3556ewq a:654332667774
注:我需要的内容是a:654332667774 但是这部份内容可能长,有可能短。但需要读完。
wz3556ewq 这部份内容不要,但这部份内容也是有可能长,有可能短。是不等长的。
但a:在文档里绝对是唯一的。如何把这个唯一的数据作一个判断?
不知道这样的文档能实现我的需求吗?
wz3556ewq a:654332667774
注:我需要的内容是a:654332667774 但是这部份内容可能长,有可能短。但需要读完。
wz3556ewq 这部份内容不要,但这部份内容也是有可能长,有可能短。是不等长的。
但a:在文档里绝对是唯一的。如何把这个唯一的数据作一个判断?
不知道这样的文档能实现我的需求吗?
Text2.Text = ReadA("C:\Data.txt", 255)
End SubFunction ReadA(ByVal FileName As String, sLen As Long) As String
Dim f%, mData As String
ReadA = ""
mData = Space(sLen)
f% = FreeFile
Open FileName For Binary Access Read As #f%
Get f%, 1, mData
mData = Trim(Replace(mData, " ", ""))
If mData = "" Then Exit Function
mData = Mid(mData, InStr(1, mData, "a:"))
ReadA = mData
End Function
wz3556ewq a:654332667774 %abc$
数据显示为
a:654332667774%abc$
而不是
a:654332667774 %abc$
缺少中间的空格了。
list1.clear
do until eof(1)
line input #1, strline
p = instr(strline, "a:")
list1.additem mid(strline, p)
loop
close #1
Dim strline as string, p as integeropen "c:\my documents\data.txt" for input as #1do until eof(1)
line input #1, strline
p = instr(strline, "a:")
text1.text = p & vbcrlf & text1.text
loop
close #1
line input #1, strline
p = instr(strline, "a:")
p=mid(strline, p)
text1.text = p & vbcrlf & text1.text
loop
close #1
运行到此,提示“类型不匹配”
p=mid(strline, p)
提示:无效的过程调用或参数
line input #1, strline
p = instr(strline, "a:")
strline=mid(strline, p)
text1.text = strline & vbcrlf & text1.text
loop
close #1兄弟你一点不会吗?知道意思就够了难道要一步一步把着你阿
p=mid(strline, p)
提示:无效的过程调用或参数
Text1.MultyLine = Trueopen "c:\my documents\data.txt" for input as #1do until eof(1)
line input #1, strline
p = instr(strline, "a:")
text1.text = mid(strline, p) & vbcrlf & text1.text
loop
close #1
line input #1, strline
p = instr(strline, "a:")
If p Then text1 = mid(strline, p) & vbcrlf & text1
loop
有这样的方法?
line input #1, strline
p = instr(strline, "a:")
If p Then text1 = mid(strline, p) & vbcrlf & text1
loop
只能显示第一行,而无法显示第二行以及后面的数据
也就是说"c:\my documents\data.txt"中有如下内容:
wz3556ewq a:654332667774
b:4567467856 34524562
c:3awqw3@$Z df34@$#sd4这个文件中内容每固定时间要变化且"wz3556ewq "这部份字符长度不定,现只需要在text1.text文本框从a:以下显示内容:
a:654332667774
b:4567467856 34524562
c:3awqw3@$Z df34@$#sd4
自己调试出来了
Private Sub Command1_Click()
Dim strline As String, p As Integer
Text1 = ""
Open "c:\my documents\data.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strline
p = InStr(strline, "a:")
If p Then strline = Mid(strline, p) & vbCrLf & Text
Text1.Text = Text1.Text & strline
Loop
Close #1
End Sub谢谢大家