'v7.8***************************************************** ' File: dateinachwortdurchsuchen.vbs ' Autor: W.Schmelz ' http://dieseyer.de ' ' Beliebige Datei auf dieses Programm ziehen und loslassen! ' Ein zu suchendes Wort eingeben, groß und klein wichtig !! ' Die Zeilen mit dem gesuchten Wort werden dann mit der Num- ' merierung angezeigt! '********************************************************* 'CopyRight W. Schmelz, 09.08.2007 'Objekte für das Programm bereit stellen: Set Wss=WScript.CreateObject("WScript.Shell") Set Fso=WScript.CreateObject("Scripting.FileSystemObject") Set Arg=Wscript.Arguments Titel=" Wort in Datei suchen !" 'Aufgesetzte Datei ermitteln: For i=0 to Arg.Count -1 Datei=Arg.Item(i) Next 'Falls keine Datei aufgesetzt wurde: UV=VbCR&VbCR If Datei="" then MsgBox UV&VbCR&_ " Bitte eine Datei aufsetzen,"&UV&_ " in der Wort gesucht werden soll ! "&_ UV&VbCR,VbCritical,Titel:WScript.Quit 'Abbruch !! 'Abfrage des zu suchenden Wortes oder Abbruch: Wort=InputBox(UV&UV&_ " Geben Sie das zu suchende Wort ein !"&UV&_ " Achten Sie auf kleine / große Buchstaben !"&UV&UV,Titel) If Wort="" then WScript.Quit 'Aufgesetzte Datei öffnen und lesen: Set File=Fso.OpenTextFile(Datei,1,true) i=1 Do until File.AtEndOfStream ReDim Preserve Zeile(i) Zeile(i)=File.ReadLine i=i+1 Loop Ende=i-1 File.Close Set File=Nothing 'Suche des Wortes in den Zeilen: Hier="" Zahl="0" 'Zahl der Fundstellen For i=1 to Ende k=1 Do until k>Len(Zeile(i))-Len(Wort)+1 If Mid(Zeile(i),k,Len(Wort))=Wort then Hier=Hier&" | "&i Zahl=Zahl+1 'Wie oft "Wort" gefunden ? End If k=k+1 Loop Next 'Ende abschneiden ! If Len(Hier)>4 then Hier=Right(Hier,Int(Len(Hier)-3)) 'Falls nichts zu finden war: If Hier="" then MsgBox UV&VbCR&"Das Wort "" "&_ Wort&" "" ist nicht zu finden ! "&UV&_ VbCR,VbCritical,Titel:WScript.Quit 'Abbruch !! 'Zeilen mit Nr. versehen: For i=1 to Ende Zeile(i)=i&VbTab&Zeile(i) 'VbTab gibt spaltenweise Anzeige, nicht " "! Next 'Ausgabe der Fundstellen: 'MsgBox UV&UV&" Das Wort "" "&Wort&_ ' " "" befindet sich in Zeile : "&UV&UV&_ ' " "&Hier&UV&UV,VbInformation,Titel 'Aufsplittung der Fundorte in Ort( ), beginnt mit Ort(0) ! Ort=Split(Hier," | ") 'Ausgabedatei festlegen und gefundene Zeilen mit Nr. hinein schreiben: Stamm=Fso.GetParentFolderName(Datei) Datei=Fso.GetBaseName(Datei)&"-Such.txt" Datei=Stamm&"/"&Datei Set File=Fso.OpenTextFile(Datei,2,true) File.WriteLine(" ") File.WriteLine(" ") File.WriteLine("Das Wort "" "&Wort&" "" steht in folgenden Zeilen:") File.WriteLine("************************************************") File.WriteLine(" ") File.WriteLine(" ") File.WriteLine(" ") i=0 Do until i=Zahl 'Beginn mit i=0 !! File.WriteLine(" ") File.WriteLine(Zeile(Ort(i))) i=i+1 Loop File.Close Set File=Nothing 'Bei Erfolg die Datei mit den Zeilen-Nr. anzeigen und diese löschen: Wss.Run "Notepad """&Datei&""" " WScript.Sleep 1500 'Frage, ob Ausgabe-Datei gelöscht werden soll: Ask=MsgBox(UV&UV&_ "Soll diese Datei mit den Fundorten gelöscht werden ? "&_ UV&"Sie steht im Verzeichnis dieser aufgesetzten Datei!"&UV&_ UV,VbYesNo+VbDefaultButton2+VbCritical,Titel) If Ask="7" then WScript.Quit ' Bei "Nein" Abbruch ! 'Sonst die Fundort-Datei löschen: WScript.Sleep 1000 Fso.DeleteFile Datei