21. januar 2004 - 15:50Der er
3 kommentarer og 1 løsning
WSH: hent streng
Hej
Jeg vil gerne
1) scanne en række filer igennem i et bestemt bibliotek (hovedloop) 2) tjekke hver enkelt linje (subloop) efter 2 bestemte strenge 3) skrive til én output-fil
Indtil videre har jeg kun.....
strPath = "XY.txt"
Set fso = WScript.Createobject("scripting.filesystemobject") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(strPath, 1)
Set oCurFolder = oFS.GetFolder(SearchPath) Set f1 = oFS.OpenTextFile(ResultFile, ForWriting, True)
For Each file In oCurFolder.Files Set CheckFile = oFS.OpenTextFile(file) Do While Not CheckFile.AtEndOfStream strLine = CheckFile.ReadLine If InStr(1, strLine, SearchStr1, vbtextCompare) > 0 Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." End If If (InStr(1, strLine, SearchStr2, vbTextCompare) > 0) Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." End If Loop Next
FindFile SearchPath f1.Close MsgBox "Done"
Function FindFile(p_sFromFolder) Set oCurFolder = oFS.GetFolder(p_sFromFolder)
For Each subfolder in oCurFolder.SubFolders FindFile p_sFromFolder & "\" & subfolder.Name Set f = subFolder.Files
For Each file in f Set CheckFile = oFS.OpenTextFile(file) Do While Not CheckFile.AtEndOfStream strLine = CheckFile.ReadLine If InStr(1, strLine, SearchStr1, vbtextCompare) > 0 Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." End If If (InStr(1, strLine, SearchStr2, vbTextCompare) > 0) Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." End If Loop Next
Set oCurFolder = oFS.GetFolder(SearchPath) Set f1 = oFS.OpenTextFile(ResultFile, ForWriting, True)
For Each file In oCurFolder.Files Set CheckFile = oFS.OpenTextFile(file) Do While Not CheckFile.AtEndOfStream strLine = CheckFile.ReadLine If InStr(1, strLine, SearchStr1, vbtextCompare) > 0 Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." End If If (InStr(1, strLine, SearchStr2, vbTextCompare) > 0) Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." End If Loop Next
FindFile SearchPath f1.Close MsgBox "Done"
Function FindFile(p_sFromFolder) Set oCurFolder = oFS.GetFolder(p_sFromFolder)
For Each subfolder in oCurFolder.SubFolders FindFile p_sFromFolder & "\" & subfolder.Name Next
Set f = oCurFolder.Files
For Each file in f Set CheckFile = oFS.OpenTextFile(file) Do While Not CheckFile.AtEndOfStream strLine = CheckFile.ReadLine If InStr(1, strLine, SearchStr1, vbtextCompare) > 0 Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr1 & " i sig." End If If (InStr(1, strLine, SearchStr2, vbTextCompare) > 0) Then ' WshShell.Popup "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." f1.WriteLine "Filen: " & file & " Har Ordet: " & SearchStr2 & " i sig." End If Loop Next
Jeg takker for hjælpen. Selvom jeg lige skulle tilrette lidt, så var det i høj grad brugbart.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.