我要将一个文本c:\data.txt中的数据读到我的程序中的text1.text,普通方法不能解决,我是菜菜,需要高手指点一下。文档内容大致如下:
wz3556ewq a:654332667774
注:我需要的内容是a:654332667774 但是这部份内容可能长,有可能短。但需要读完。
  wz3556ewq 这部份内容不要,但这部份内容也是有可能长,有可能短。是不等长的。
  但a:在文档里绝对是唯一的。如何把这个唯一的数据作一个判断?
    不知道这样的文档能实现我的需求吗?

解决方案 »

  1.   

    Private Sub Command1_Click()
        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
      

  2.   

    基本可以了,但还是有点问题,当数据为
    wz3556ewq a:654332667774  %abc$
    数据显示为
    a:654332667774%abc$
    而不是
    a:654332667774  %abc$
    缺少中间的空格了。
      

  3.   

    Dim strline as string, p as integeropen "c:\my documents\data.txt" for input as #1
    list1.clear
    do until eof(1)
        line input #1, strline
        p = instr(strline, "a:")
        list1.additem mid(strline, p)
    loop
    close #1
      

  4.   

    我晕自己改下不可以阿
    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
      

  5.   

    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:")
       p=mid(strline, p)
       text1.text = p & vbcrlf & text1.text
    loop
    close #1
      

  6.   

    p=mid(strline, p)
    运行到此,提示“类型不匹配”
      

  7.   

    类型为string时:p as integer
    p=mid(strline, p) 
    提示:无效的过程调用或参数
      

  8.   

    真不好意思又tmd写错了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:")
       strline=mid(strline, p)
       text1.text = strline & vbcrlf & text1.text
    loop
    close #1兄弟你一点不会吗?知道意思就够了难道要一步一步把着你阿
      

  9.   

    类型为string时:p as string
    p=mid(strline, p) 
    提示:无效的过程调用或参数
      

  10.   

    Dim strline as string, p as integerText1 = ""
    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
      

  11.   

    P 是查找到的位置指针,Integer 类型.do until eof(1)
        line input #1, strline
        p = instr(strline, "a:")
        If p Then text1 = mid(strline, p) & vbcrlf & text1
    loop
      

  12.   

    Text1.MultyLine = True
    有这样的方法?
      

  13.   

    do until eof(1)
        line input #1, strline
        p = instr(strline, "a:")
        If p Then text1 = mid(strline, p) & vbcrlf & text1
    loop
    只能显示第一行,而无法显示第二行以及后面的数据
      

  14.   

    不知道楼上2位高人知道我的需求没有?
    也就是说"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
      

  15.   


    自己调试出来了
    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谢谢大家