| |

Suche Visual-Basic CodeSuchen in Textdatein | |  | Autor: mwichmann | Datum: 27.08.02 10:21 |
| Hallo,
ich habe zwei Problem.
1.Ich durchsuche Textdatein nach bestimmten Begriffen.
Meine Suche unterscheidet aber noch zwischen Groß-und Kleinschreibung.Und
das soll sie nicht machen.
Hier mal der Cosde für meine Suche:
Private Sub suche_Click()
Dim x&, Zeilen() As String, FName$
MousePointer = vbHourglass
FName = "c:archivdatensicherung.txt"
List1.Clear
Label10.Caption = ""
Label10.Refresh
'Die letzten beiden Parameter geben das linke und rechte
'Begrenzungszeichen einer Zeile an, dies können auch
'mehrere sein. Hier wurde für links vbLf (chr$(10)) und
'für rechts vbCr (chr$(13)) gewählt
If FindTerm(FName, Text7.Text, Zeilen, vbLf, vbCr) Then
List1.Visible = False
DoEvents
For x = 0 To UBound(Zeilen) - 1
If x < 32736 Then
List1.AddItem Zeilen(x)
Else
MsgBox ("ListBox kann nicht mehr Einträge fassen!")
Exit For
End If
Next x
List1.Visible = True
Else
MsgBox ("Suchbegriff nicht vorhanden!")
End If
Label10.Caption = UBound(Zeilen) & " Zeile(n) gefunden"
MousePointer = vbDefault
End Sub
Private Function FindTerm(File$, s$, ZZ$(), tl$, tr$) As Boolean
Dim c&, f%, i&, j&, L&, lc&, p&, v&, w&
Dim a$, d$, n$, o$
'Dieser Wert gibt die Paketgröße von Get# an. Er kann beliebig
'geändert werden, sollte aber nicht kleiner als die längste
'zu erwartende Zeile des zu druchsuchenden Files sein
Const PS& = 1024&
ReDim ZZ(0)
'Prüfen ob Parameter plausibel sind
If tl$ = "" Or _
tr$ = "" Or _
s$ = "" Or _
Dir$(File, vbNormal) = "" Then
MsgBox ("Paramter stimmen nicht!")
Exit Function
End If
f = FreeFile
Open File For Binary Shared As #f
L = LOF(f)
'Anzahl der Durchläufe anhand der Dateigröße ermitteln
p = L PS
If L Mod PS <> 0 Then p = p + 1
'Schleife starten
For c = 1 To p
n = Space$(PS)
Get f, , n
a = o & n
i = InStr(1, a, s)
If i <> 0 Then
'Suchbegriff wurde im aktuellen Paket gefunden
lc = 0
Do
i = InStr(i, a, s)
If i <> 0 Then
'Zeilenanfang suchen
v = 1
For j = i To 1 Step -1
d = Mid$(a, j, 1)
If InStr(1, tl, d) Then
'gefunden
v = j + 1
Exit For
End If
Next j
'Zeilenende suchen
w = 0
For j = i To Len(a)
d = Mid$(a, j, 1)
If InStr(1, tr, d) Then
'gefunden
w = j - 1
Exit For
End If
Next j
If w <> 0 Then
'Zeile auschneiden und in einem Feld speichern
'Hier könnten auch weitere Suchkriterien abge-
'fragt werden.
ZZ(UBound(ZZ)) = Mid$(a, v, w - v + 1)
ReDim Preserve ZZ(0 To UBound(ZZ) + 1)
lc = w
End If
i = w
End If
'Weiter schleifen, da der Suchbegriff im Paket ja
'öfters als einmal auftauchen kann
Loop Until i = 0
If lc = 0 Then
'Suchbegriff wurde im aktuellen Paket nicht ge-
'funden. Daher ganzen String für die nächste Runde
'speichern
o = a
Else
'Ab Ende der zuletzt gefundenen Zeile des aktuel-
'len Paketes für die nächste Runde speichern
o = Mid$(a, lc)
End If
Else
'Paket der aktuellen Runde speichern
o = n
End If
Next c
Close f
If UBound(ZZ) > 0 Then FindTerm = True
End Function
Wie kann ich es mit diesem Code erreichen,dass NICHT mehr zwischen Groß-und KLeinschreibung unterschieden wird.
2.In den Textdatein sind PFade gespeichert.
Bsp.:
CD Nr. :1
Kunde:maik
Auftrag:webseite
Erstellungsdatum:13.11.02
Dateiendung:htm
D:
D:
D:video
D:videoAdobe Premiere Vorschaudateien
D:videoAdobe Premiere Vorschaudateienkrs-clips2.TMP
D:videoK1-7
D:videoK1-71.psd
D:video_alt
--------------------------------------------------------------------------------------
CD Nr :2
Kunde:Karl Mustermann
Auftrag:Erstellen der Webseite für den SV Fortuna Großschwabhausen
Erstellungsdatum:12.09.2001
Dateiendung:html,htm,gif,jpeg
D:
D:
D:video
D:videoAdobe Premiere Vorschaudateien
D:videoAdobe Premiere Vorschaudateienkrs-clips2.TMP
D:videoK1-7
D:video_alt
-------------------------------------------------------------------------------------------
wenn ich jetzt nach z.B. den Namen "Karl Mustermann" suche,dann würde mir die Suche ausgeben: "Kunde:Karl Mustermann"
Ich möchte aber das die Suche die "CD Nr:" noch mit ausgibt.
Wie kann ich das realisieren.
Ich weiß das dies sicherlich keine leichte Aufgabe ist.Aber ich hoffe hier kann mir trotzdem jemand helfen.
Danke für die Mühe! |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevCoolbar 3.0 
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere Infos
|