Strin in Datei suchen und Datei anzeigen

Hallo zusammen,

habe nun tagelang das www durchforstet - aber nirgends eine Lösung gefunden.
Und zwar benötige ich eine Indexsuche, ähnlich wie die Google-Desktopsuche.
Soll mir in einen vorgegeben Verzeichnis nach eine String in Dateien suchen, und dann die Datei anzeigen. (können auch mehrer sein)
Diese Funktion hatte ich unter Office2003, jetzt mit Office 2007 funktioniert es nicht mehr das es das SearchFile nicht mehr gibt.

Option Explicit

Dim fso As New FileSystemObject
Dim fld As Folder

Private Sub Commandbutton1\_Click()
 Dim nDirs As Long, nFiles As Long, lSize As Currency
 Dim sDir As String, sSrchString As String
 ListBox1.Clear
 sDir = "c:\test\"
 sSrchString = TextBox1
 'MousePointer = vbHourglass
 Label1.Caption = "Searching " & vbCrLf & UCase(sDir) & "..."
 lSize = FindFile(sDir, sSrchString, nDirs, nFiles)
 'MousePointer = vbDefault
 MsgBox Str(nFiles) & " " & " Dateien mit dem Namen " & sSrchString & " gefunden in" & Str(nDirs) & \_
 " Verzeichnis", vbInformation
 'MsgBox "Total Size = " & lSize & " bytes"
End Sub

Private Function FindFile(ByVal sFol As String, sFile As String, \_
 nDirs As Long, nFiles As Long) As Currency
 Dim tFld As Folder, tFil As File, FileName As String

 On Error GoTo Catch
 Set fld = fso.GetFolder(sFol)
 FileName = dir(fso.BuildPath(fld.path, sFile), vbNormal Or \_
 vbHidden Or vbSystem Or vbReadOnly)
 While Len(FileName) 0
 FindFile = FindFile + FileLen(fso.BuildPath(fld.path, \_
 FileName))
 nFiles = nFiles + 1
 ListBox1.AddItem fso.BuildPath(fld.path, dir) ' Load ListBox
 FileName = dir() ' Get next file
 DoEvents
 Wend
 Label1 = "Searching " & vbCrLf & fld.path & "..."
 nDirs = nDirs + 1
 If fld.SubFolders.Count \> 0 Then
 For Each tFld In fld.SubFolders
 DoEvents
 FindFile = FindFile + FindFile(tFld.path, sFile, nDirs, nFiles)
 Next
 End If
 Exit Function
Catch: FileName = ""
 Resume Next
End Function

Private Sub ListBox1\_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 Dim dir As String
 dir = ListBox1
 Shell "explorer.exe " & dir, vbNormalFocus
End Sub

(mit dem Code hatte ich weiter unten schon mal n Problem, welches aber nun behoben ist :smile:)

Naja - auf alle Fälle - wie kann ich den Code nun umbauen das er mir nach Dateiinhalten sucht?
Ist es überhaupt möglich solch eine Suchen zu „programmieren“?

Bitte, bitte helft mir - ich bin am verzweifeln. :frowning:

Gruß Rolf

Hallo,

in VB kenne ich keine Funktion dafür.
Da müsste man vermutlich den Dateiinhalt laden und dann erst durchsuchen. Noch langsamer geht nicht.

Aber cmd.exe kennt ‚Find‘. Man kann in VB eine Console einbinden
http://www.activevb.de/tipps/vb6tipps/tipp0272.html
und dann dort ‚FIND‘ verwenden.

Gruß Rainer

Moin Rainer,

ok, die „Abfrage“ im cmd funtzt, soweit…
Wie aber das ganze in die Userform einbauen?
Und vor allem --> wie ausgeben?

Er findet mir den Textinhalt ausserdem nur wenn ich explezit den Pfad mit Dateiname angebe.
Das ist noch nicht des Pudels Kern :smile:) leider.

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]