怎样实现
我现在新建一个文本文件名字叫data.txt
里面写了很多的文件名
例如:winset.exe kk.txt name.html
如何用VB实现打开这个data.txt文件
并且读里面的文件名
我的程序里面有一 个filename变量
如果filename变量里面的文件名等于data.txt文件里面的文件名
那么就显示出来
我现在新建一个文本文件名字叫data.txt
里面写了很多的文件名
例如:winset.exe kk.txt name.html
如何用VB实现打开这个data.txt文件
并且读里面的文件名
我的程序里面有一 个filename变量
如果filename变量里面的文件名等于data.txt文件里面的文件名
那么就显示出来
例如,以下代码段逐行读取一个文件:Dim LinesFromFile, NextLine As StringDo Until EOF(FileNum)
Line Input #FileNum, NextLine
LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)
Loop尽管 Line Input # 到达回车换行时它会识别行尾,但是,当它把该行读入变量时,不包括回车换行。如果要保留该回车换行,代码必须添加。也可以使用 Input # 语句,它读取文件中所写的一列的数字和/或字符串表达式。例如,要从一个邮件列表文件中读取一行,可使用以下语句
————————————————————————————
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