2014-01-31 2 views
0

Я хочу найти более одной строки в файле с помощью vb6 с помощью instr мы можем сделать это для одной строки, но я не знаю, как использовать instr для более чем одной строки. Как я могу искать больше чем один, и если найти один из них, мы получим сообщение?Как искать более одной строки в VB6?

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

ответ

2

Это просто случай введения нескольких тестов для нескольких строк ...

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 

Если все, что вы хотите сделать, это показать истинное или ложное окно сообщения, то нам не нужно назначить значение для второго массива. Цикл For может быть заменен ...

For c = 1 to 10 
    If Instr(strData, strArray(c)) > 0 Then 
     MsgBox "'" & strArray(c) & "' found in file." 
     'Remove the following line if you want everything to be searched for, 
     'but leave it in if you only want the first string found... 
     Exit For 
    End If 
Next c 

Действительно это очень простой кусок кода. Если вы хотите написать код как ничего, кроме новичка, вам необходимо изучить команды, функции и структуры, включенные в этот пост. Хорошее место для начала, для начинающего, было бы где-то вроде http://www.thevbprogrammer.com/classic_vbtutorials.asp или http://www.vb6.us/.

+0

PS: Вы должны простить любые проблемы синтаксиса - мой VB6 довольно ржавый! – Paul

+0

TNX НО ВЫ МОЖЕТЕ СДЕЛАТЬ ЭТО С ПРИМЕРОМ? Я ЕСМЬ NOOB: d – user3245060

+0

Ermm ... Вот пример кода выше. Все, что вам нужно сделать, это поместить список строк, где '...' s (например, 'strArray (1) =« My Little Pony »и т. Д.). Номера, хранящиеся в 'cntArray', являются позицией данной строки в списке. – Paul

0
'----------------------------------------------------------- 
'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 

То есть от http://vb6.info/string/instr-multi-perform-instr-checks-multiple-inst-conditions-function/

Смежные вопросы