String 如何在VB6中搜索多个字符串?

String 如何在VB6中搜索多个字符串?,string,vb6,String,Vb6,我想用vb6在文件中搜索多个字符串 使用instr我们可以对单个字符串执行此操作,但我不知道如何对多个字符串使用instr现在如何搜索多个字符串,如果找到其中一个,我们将收到一条消息 Open file For Binary As #1 strData = Space$(FileLen(file)) Get #1, , strData Close #1 lngFind = InStr(1, strData, string) 这只是一个为多个字符串引入多个测试的例子 Dim st

我想用vb6在文件中搜索多个字符串 使用instr我们可以对单个字符串执行此操作,但我不知道如何对多个字符串使用instr现在如何搜索多个字符串,如果找到其中一个,我们将收到一条消息

Open file For Binary As #1
    strData = Space$(FileLen(file))
    Get #1, , strData
Close #1
lngFind = InStr(1, strData, string)

这只是一个为多个字符串引入多个测试的例子

Dim strArray(10) As String
DIm cntArray(10) As Integer
Dim strData As String
Dim c As Integer

'Set-up your search strings...
...

Open file For Binary As #1
Get #1, , strData
Close #1

For c = 1 to 10
    cntArray(c) = Instr(strData, strArray(c))
Next c
如果您只想显示一个true或false消息框,那么不需要将该值赋给第二个数组。可将的
循环替换为

用于c=1到10
如果Instr(strData,strArray(c))>0,则
在文件中找到MsgBox“'”和strArray(c)和“”
'如果要搜索所有内容,请删除以下行,
'但是如果您只想找到第一个字符串,请将其保留在中。。。
退出
如果结束
下一个c
实际上,这是一段非常基本的代码。如果你想以新手的身份编写代码,那么你需要研究本文中包含的命令、函数和结构。对于一个完全的新手来说,一个好的起点应该是像或这样的地方。

'-----------------------------------------------------------
'在字符串上执行多个instr。如果所有instr都通过,则返回true
'-----------------------------------------------------------
函数bmultininstr(sToInspect作为字符串,ParamArray sArrConditions())作为布尔值
出错时转到错误:
Dim i为整数,iUpp为整数
iUpp=UBound(sArrConditions)仪器条件
对于i=0到iUpp'循环它们

如果InStr(1,sToInspect,sArrConditions(i))PS:您必须原谅任何语法问题-我的VB6非常生锈!但是你能举个例子吗?我是诺布:德姆。。。这就是上面的示例代码。您所要做的就是在
的位置放置一个字符串列表(例如
strArray(1)=“我的小马”
等)。存储在
cntArray
中的数字是给定字符串在列表中的位置。tnx确定,因此我在下一个c之后添加此值(如果c>0,则MsgBox“find:”Else MsgBox“not find”End If),那么现在可以了吗?如果其中一个存在,我想给我一个消息-数组
cntArray()
包含另一个数组中每个匹配字符串的位置,因此例如,如果在文件字符串(
strArray(1)
)中找到了
strArray(1)
),那么
cntArray(1)
将反映找到字符串的第一个位置(例如,如果
cntArray(1)
=12345,这意味着
strArray(1)
中保存的字符串可以在
strData
中的12345位置找到)。您需要检查每个值,看看哪个值对您最有用。例如,您可能希望首先选择最低的值,甚至是最高的值—这取决于您自己!;o)
'-----------------------------------------------------------
'perform multiple instr on a string. returns true if all instr pass
'-----------------------------------------------------------

Function bMultiInstr(sToInspect As String, ParamArray sArrConditions()) As     Boolean
On Error GoTo err:
Dim i As Integer, iUpp As Integer

iUpp = UBound(sArrConditions) 'instr conditions

For i = 0 To iUpp ' loop them
       If InStr(1, sToInspect, sArrConditions(i)) <= 0 Then Exit Function '     if instr returns 0 then exit - [bPasses] will be left false
Next i

bPasses = True


Exit Function
err:
With err
     If .Number <> 0 Then
        'create .bas named [ErrHandler]  see http://vb6.info/h764u
        ErrHandler.ReportError Date & ": Strings.bMultiInstr." & err.Number     & "." & err.Description
        Resume Next
      End If
End With
End Function