怎样实现
我现在新建一个文本文件名字叫data.txt
里面写了很多的文件名
例如:winset.exe kk.txt name.html
如何用VB实现打开这个data.txt文件
并且读里面的文件名
我的程序里面有一 个filename变量
如果filename变量里面的文件名等于data.txt文件里面的文件名
那么就显示出来

解决方案 »

  1.   

    在data.txt文件里,每个文件名使用一行,读文件时,可每次读出一行,与filename变量值比较,即可得到结果
      

  2.   

    或者用8.3格式文件名写data.txt文件,把整个data.txt文件的内容读入一个字符串数组,然后用循环一一与filename比较
      

  3.   

    那要看你用什么样的格式写的文件了!
       例如,以下代码段逐行读取一个文件:Dim LinesFromFile, NextLine As StringDo Until EOF(FileNum)
       Line Input #FileNum, NextLine
       LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)
    Loop尽管 Line Input # 到达回车换行时它会识别行尾,但是,当它把该行读入变量时,不包括回车换行。如果要保留该回车换行,代码必须添加。也可以使用 Input # 语句,它读取文件中所写的一列的数字和/或字符串表达式。例如,要从一个邮件列表文件中读取一行,可使用以下语句
      

  4.   

    模块
    ————————————————————————————
      Const KEY_BACK = &H8
      Const KEY_DELETE = &H2E
      Const KEY_CLEAR = &HC  
      Const TEXTBOX_FOCUS = 1       ' currently in text box
      Const LISTBOX_FOCUS = 2       ' currently in list box
      Dim miCtrlFocus As Integer      ' which control (textbox/listbox) has focus
      Dim miNumKeys As Integer        ' number of keys pressed by user
      Dim mfScrolling As Integer      ' True if textbox triggers listbox scroll.
      Dim mfKeepKey As Integer        ' False if user hit delete/backspaceSub CursorArrow()
      Screen.MousePointer = 1
    End SubSub CursorWait()
      Screen.MousePointer = 11
    End SubSub LISTSRCH_Activate()
      MsgBox "Try typing:  " & Chr(34) & "Windows 3.11 for Workgroups" & Chr(34), 64
      frmListSearch.txtSearch.SetFocus
    End SubSub LISTSRCH_cmdClose_Click()
      Unload frmListSearch
      End
    End SubSub LISTSRCH_Load()
      '---Start of Code
      CursorWait
      frmListSearch.lstSearch.AddItem "Windows"
      frmListSearch.lstSearch.AddItem "Windows 3.1"
      frmListSearch.lstSearch.AddItem "Windows 3.0"
      frmListSearch.lstSearch.AddItem "Windows 3.1 API"
      frmListSearch.lstSearch.AddItem "Winows Program Manager"
      frmListSearch.lstSearch.AddItem "Windows File Manager"
      frmListSearch.lstSearch.AddItem "Windows File Manager API"
      frmListSearch.lstSearch.AddItem "VB"
      frmListSearch.lstSearch.AddItem "VB Programmers Journal"
      frmListSearch.lstSearch.AddItem "VB 1.0"
      frmListSearch.lstSearch.AddItem "VB 2.0"
      frmListSearch.lstSearch.AddItem "VB 3.0"
      frmListSearch.lstSearch.AddItem "VB 3.0 Professional"
      frmListSearch.lstSearch.AddItem "VBX's"
      frmListSearch.lstSearch.AddItem "VB for Applications"
      frmListSearch.lstSearch.AddItem "VB for DOS"
      frmListSearch.lstSearch.AddItem "VBAssist"
      frmListSearch.lstSearch.AddItem "VBA"
      frmListSearch.lstSearch.AddItem "Windows 3.11 for Workgroups"
      frmListSearch.lstSearch.AddItem "Windows 3.11"  miNumKeys = 0
        
      CursorArrow
      '---End of Code
    End SubSub LISTSRCH_lstSearch_Click(lstSearch As ListBox, txtSearch As TextBox)
     
      Dim szListText As String
      Dim iListIndex As Integer
      '---Start of Code
      On Error Resume Next  If lstSearch.ListIndex >= 0 And miCtrlFocus = LISTBOX_FOCUS Then
        ' user has clicked on the liat box
        iListIndex = lstSearch.ListIndex
        szListText = lstSearch.List(iListIndex)
        txtSearch.Text = szListText
      End If
    End SubSub LISTSRCH_lstSearch_KeyDown()
      
      miCtrlFocus = LISTBOX_FOCUS
      miNumKeys = 0
    End SubSub LISTSRCH_lstSearch_MouseDown()
      
      miCtrlFocus = LISTBOX_FOCUS
      miNumKeys = 0
    End Sub
      
      Dim szSrchText As String    ' contents of text box
      Dim iTxtLen As Integer      ' length of search string
      Dim iListIndex As Integer   ' set by SearchListBox
      Dim fReturn As Integer      ' ret. from SearchListBox
      
      '---Start of Code
      On Error Resume Next  If miCtrlFocus = TEXTBOX_FOCUS And mfKeepKey And Not mfScrolling Then
        iTxtLen = Len(txtSearch.Text)
        If iTxtLen Then
          miNumKeys = IIf(miNumKeys < iTxtLen, miNumKeys, iTxtLen)
          szSrchText = txtSearch.Text
          fReturn = SearchListBox(szSrchText, lstSearch, iListIndex)
          
          mfScrolling = True
          If iListIndex = -1 Then
            lstSearch.ListIndex = -1
          Else
            ' perfect match was found
            lstSearch.Selected(iListIndex) = True
            txtSearch = lstSearch.List(lstSearch.ListIndex)
            txtSearch.SelStart = miNumKeys
            txtSearch.SelLength = (Len(txtSearch.Text) - miNumKeys)
          End If
          mfScrolling = False
        End If
      End If
    End SubSub LISTSRCH_txtSearch_GotFocus()
      miNumKeys = 0
      frmListSearch.txtSearch.SelStart = 0
      frmListSearch.txtSearch.SelLength = Len(frmListSearch.txtSearch.Text)
    End SubSub LISTSRCH_txtSearch_KeyDown(ByVal KeyCode As Integer)
      
      If KeyCode = KEY_BACK Or KeyCode = KEY_DELETE Or KeyCode = KEY_CLEAR Then
        mfKeepKey = False
        If KeyCode = KEY_BACK Then
          ' unhilight current item; next search
          ' will start at top of list
          frmListSearch.lstSearch.ListIndex = -1
        End If
      Else
        mfKeepKey = True
      End If
    End SubSub LISTSRCH_txtSearch_KeyPress(KeyAscii As Integer)
     
      miCtrlFocus = TEXTBOX_FOCUS
      If mfKeepKey Then
        miNumKeys = Len(frmListSearch.txtSearch.Text) + 1
      End If
    End SubFunction SearchListBox(ByVal szSearchText As String, lbScroll As ListBox, iListIndex As Integer) As Integer
     
      '---Constants (returned from StrComp)
      Const FOUND = 0
      Const LT = -1
      Const GT = 1
      
      '---Variable declarations
      Dim iListStart As Integer     ' starting point in list
      Dim iListCount As Integer     ' no. of items in list box
      Dim iTxtLen As Integer
      Dim szListText As String      ' current list item
      Dim vCompResult               ' result of string comp function
      Dim fFound As Integer         ' match found?
      Dim fDone As Integer          ' Terminates search if true  '---Start of Code
      fFound = False
      iTxtLen = Len(szSearchText)  If iTxtLen > 0 And lbScroll.ListCount > 0 Then
        iListStart = lbScroll.ListIndex
        If iListStart = -1 Then iListStart = 0
        iListIndex = iListStart
        iListCount = lbScroll.ListCount
        szListText = Left(lbScroll.List(iListStart), iTxtLen)    ' check to see if current item matches
        fFound = CInt(StrComp(szSearchText, szListText, 1))    If fFound <> FOUND Then
          fDone = False      If (fFound = LT) Then
            iListIndex = 0
            fFound = False
          Else
            iListIndex = iListIndex + 1
          End If      Do While (iListIndex <= iListCount) And Not fDone
            szListText = Left(lbScroll.List(iListIndex), iTxtLen)
            vCompResult = StrComp(szSearchText, szListText, 1)
            If IsNull(vCompResult) Then
              iListIndex = -1
              Exit Do
            End If
            fFound = (CInt(vCompResult) = FOUND)
            fDone = fFound Or (CInt(vCompResult) = -1)
            If Not fDone Then
              iListIndex = iListIndex + 1
            End If
          Loop      If Not fFound Then
            iListIndex = -1
          End If
        End If
      End If  SearchListBox = fFound
    End Function ' ScrollListBox