http://dieseyer.de • all rights reserved • © 2011 v11.4

'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

http://dieseyer.de • all rights reserved • © 2011 v11.4