vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Suche Visual-Basic Code
Re: Wörterbuch 
Autor: dstk
Datum: 20.11.03 19:37

Also da ihr mir nich geholfen habt, hab ich mich selbstständig gemacht ;)
Hier ist der code: Original ist er von www.vb-fun.de
Hab ihn aber meinen bedürfnissen angepasst


' benötigt werden: Textfeld Text1, Command-Button Command1, List-Box List1 und 
' Label Label2
Option Explicit
 
Private Sub Text1_Validate(KeepFocus As Boolean)
    If Len(Text1) = 1 Then
    MsgBox "Devi inserire piú di una lettera sola!!!", vbCritical
    End If
End Sub
 
Private Sub Text1_GotFocus()
 
' Markieren wenn Text1 wieder angeklickt wird
 
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)
End Sub
 
Private Sub Command1_Click()
  Dim x&, Zeilen() As String, FName$
 
 
    MousePointer = vbHourglass
    FName = App.Path & "\wb2.dat"
    List1.Clear
    Label2.Caption = ""
    Label2.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, Text1.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
          List1.Clear
          List1.AddItem "Non c'é posto per tutti i nomi!"
          List1.AddItem "Specifica la tua richiesta!"
          Exit For
        End If
      Next x
      List1.Visible = True
    Else
      List1.AddItem "Parola non trovata!"
    End If
    If UBound(Zeilen) = 1 Then
    Label2.Caption = "1 riga trovata"
    ElseIf UBound(Zeilen) = 0 Then
    Label2.Caption = "0 rige trovate"
    ElseIf UBound(Zeilen) > 1 Then
    Label2.Caption = UBound(Zeilen) & " rige trovate"
    Else
    Label2.Caption = UBound(Zeilen) & " Riga(e) trovata(e)"
    End If
    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
 
      List1.AddItem "I Parametri non sono giusti!"
      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

|||10110100011111110011|||

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Wörterbuch1.170dstk13.11.03 09:37
Re: Wörterbuch774ModeratorDieter13.11.03 10:37
Re: Wörterbuch715dstk17.11.03 14:35
Re: Wörterbuch783dstk20.11.03 19:37
Re: Wörterbuch737Danzi23.11.03 19:42
Re: Wörterbuch680dstk24.11.03 14:18
Re: Wörterbuch748Danzi24.11.03 17:40
Re: Wörterbuch693dstk25.11.03 16:35
Re: Wörterbuch637Danzi25.11.03 18:49
Re: Wörterbuch574dstk26.11.03 21:07
Re: Wörterbuch723Momo196808.12.03 23:41
Re: Wörterbuch664dstk09.12.03 16:20

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel