Как извлечь содержимое текущей строки, если оно соответствует условию? - PullRequest
0 голосов
/ 25 июня 2018

У меня есть входной файл с содержимым, как показано ниже

100/17
200/17

Я пытаюсь найти эти значения в другом файле, и, если он найден, мне нужно извлечь полную строку, где это значение найдено.

Я попробовал код ниже, но текущая строка не выбирается, если поиск найден:

If objFile.size > 0 then
    If InStr(oFSO.OpenTextFile(strFile).ReadAll, strSearchFor) > 0 Then
        'msgbox (strSearchFor & " found in " & objFile.Name)
        strToWrite = oFSO.OpenTextFile(strFile).ReadLine
        objOutFile.Write(strToWrite & " found in " & objFile.Name & vbNewLine)
    Else
        WScript.Sleep (100)
    End If
End If

1 Ответ

0 голосов
/ 25 июня 2018

Вы не понимаете, как работают методы FileSystemObject.Когда вы открываете файл, вы начинаете читать в самом начале этого файла, поэтому ваш оператор ReadLine будет читать первую строку вместо совпадающей строки.

Что вы хотите сделать - это прочитать файлпострочно сравнивайте, а затем записывайте соответствующие строки:

Set f = oFSO.OpenTextFile(strFile)
Do Until f.AtEndOfStream
    line = f.ReadLine
    If InStr(line, strSearchFor) > 0 Then
        objOutFile.WriteLine(line & " found in " & f.Name)
    End If
Loop
f.Close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...