Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

suchen in Textdatein

Empfohlene Antworten

Veröffentlicht

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:\archiv\datensicherung.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:\video\Adobe Premiere Vorschaudateien

D:\video\Adobe Premiere Vorschaudateien\krs-clips2.TMP

D:\video\K1-7

D:\video\K1-7\1.psd

D:\video_alt

--------------------------------------------------------------------------------------

CD Nr :2

Kunde:Karl Mustermann

Auftrag:Erstellen der Webseite für

Erstellungsdatum:12.09.2001

Dateiendung:html,htm,gif,jpeg

D:\

D:\

D:\video

D:\video\Adobe Premiere Vorschaudateien

D:\video\Adobe Premiere Vorschaudateien\krs-clips2.TMP

D:\video\K1-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!

hab vergessen zu schreiben das ich Visual Basic programmiere

Dass, du in VB programmierst, hat man erkannt. Ich glaube, ich kann dir helfen. In der Routine FindTerm benutzt du die Funktion InStr. Wenn du dir in der Online-Hilfe die Parameter anguckst, die man übergeben kann, wirst du feststellen, dass man der Funktion sagen kann wie sie den Text vergleichen soll. Als Standart ist glaube ich binär eingestellt. Aber wenn du die Strings als Text vergleichst, wird Groß- und Kleinschreibung nicht berücksichtigt. Ich hoffe, dass es so funktioniert.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.