VBScript для поиска двух строк в TXT - PullRequest
1 голос
/ 27 июля 2010

Я пытаюсь создать VBScript, который читает текст и ищет две строки и выдает только последние результаты.

Строка 1: Hello123

Строка 2: Test123

TXT выглядит так:

27.07.2010 09:45 ... DumDumDum ... 
27.07.2010 09:45 ... BlaBlaBla ... 
27.07.2010 09:45 ... Hello123 ... 
27.07.2010 09:45 ... BlaBlaBla ... 
27.07.2010 09:45 ... DumDumDum ... 
27.07.2010 09:45 ... DumDumDum ... 
27.07.2010 09:45 ... Hello123 ...   'This Result
27.07.2010 09:45 ... BlaBlaBla ... 
27.07.2010 09:45 ... BlaBlaBla ... 
27.07.2010 09:45 ... DumDumDum ... 
27.07.2010 09:45 ... Test123 ... 
27.07.2010 09:45 ... DumDumDum ... 
27.07.2010 09:45 ... Test123 ...        'And this Result
27.07.2010 09:45 ... DumDumDum ... 
27.07.2010 09:45 ... BlaBlaBla ... 

Я пытаюсь что-то подобное, но я не знаю, как это сделатьэто:

Прочитайте текст с ReadALL, я думаю, а затем поиск части.

if string 1 not found then
    msgbox "nothing found"
    Goto NEXT
else
    if string 2 not found then
        msgbox "nothing found"
    else
        msgbox "found"

    End if
End if
NEXT

Есть кто-то идея и может помочь мне?

Привет, Матиас

1 Ответ

2 голосов
/ 27 июля 2010

, если он не является частью более крупной программы vbscript и у вас есть возможность загружать файлы, вы можете использовать инструмент обработки файлов, такой как gawk для windows например, один вкладыш

C:\test> gawk "/Hallo123/{h=$0}/Test123/{t=$0}END{print h \"\n\" t}" file
27.07.2010 09:45 ... Hallo123 ...   'This Result
27.07.2010 09:45 ... Test123 ...        'And this Result

В vbscript используйте instr () для проверки каждой строки «Hallo123» и «Test123», затем, если найдено, присвойте переменную этой строке. В конце итерации файла выведите эти две переменные.

пример поиска "Hallo"

Set objFS = CreateObject("Scripting.FileSystemObject")
'File to scan
strFile = "c:\test\file.txt"
'Pattern to search for, eg Hallo
strPattern = "Hallo"
Set objFile = objFS.OpenTextFile(strFile)
Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine  
    If InStr(strLine,strPattern)>0 Then
        WScript.Echo strLine
                H=strLine
    End If  
Loop
Wscript.Echo H 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...