2014-01-28 109 views
0

我想從exe文件讀取,所以我覺得這個代碼從exe文件讀取VB6

Dim strData As String 
Dim lngFind As Long 
    Open txtAdrsOfFile For Binary As #1 
     strData = Space$(FileLen(txtAdrsOfFile)) 
     Get #1, , strData 
    Close #1 
    lngFind = InStr(1, strData, txtFindString) 
    If strData = txtFindString Then 
    MsgBox "FIND" 
    Else 
    MsgBox "NOT FIND" 
    End If 

它需要一個命令按鈕移到和2個文本boxs

,但它不工作 如果真有那麼方式來使用該代碼,如果你們可以plz幫我做這個multitipe字符串,我的意思是我們可以讀取多個形式的文件 tnx

+0

你能解釋一下「不工作」嗎? – jac

+0

如果「不工作」表示找不到所需的文本(InStr返回0),則可能是由於區分大小寫。默認是區分大小寫的搜索(通常是),因此InStr(1,「OriginalText」,「text」)將返回0(未找到)。可選的比較參數可以指定不區分大小寫的搜索:InStr(1,「OriginalText」,「text」,vbTextCompare)。正如@jac所說,關於什麼「不工作」意味着更完整的描述會有所幫助。 – MarkL

+0

我的意思是當我搜索一個字符串,這部分代碼很好地顯示了MsgBox「NOT FIND」我不知道爲什麼它沒有找到字符串我正在爲它搜索!我找不到!我正在爲它搜尋的字符串必須是十六進制嗎?或者類似的東西? – user3245060

回答

1

首先instr()返回查找字符串的位置的整數裏面搜索字符串 它不會改變你傳遞它的兩個字符串。的

所以不用檢查

If strData = txtFindString Then 

您應該檢查

If lngFind > 0 then 

    MsgBox "FIND" 
Else 
    MsgBox "NOT FIND" 
End If 

這是因爲strData是仍然會等於你的文件的內容是你叫INSTR()

同樣如指出,如果您搜索文本,並不擔心匹配的情況下,你應該調用instr()與文本標記

lngFind = InStr(1, strData, txtFindString,1) 
+0

另外請記住,這無助於在可執行文件中找到unicode格式的文本。 – Deanna