vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

VB.NET - Ein- und Umsteiger
Re: Suchen funktion 
Autor: ModeratorDaveS (Moderator)
Datum: 26.07.05 15:16

Also, weil das etwas interessant ist habe ich eine Routine geschrieben, die hauptsächlich wie erwartet funktioniert, glaube ich. Das ganze ist nicht so komplett trivial. Suchen startet üblicherweise bei Position des Carets, auch wenn man das zwischendurch ändert. Dann wird vom Anfang an wieder gesucht wenn man das Ende erreicht, aber nur einmal. Weil ich nicht unbegrenzte Zeit habe kann ich nicht behaupten alles ist genau richtig, aber das ist vielleicht ein Anfang (Suche in vorher selktiertem Text habe ich nicht implementiert, aber das muss man noch die Grenzen des Textbereiches zusätzlich merken).
 
    Private Sub Find_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Find.Click
        Suche()
    End Sub
 
    Private startSearch As Boolean = True
    Private startPos As Integer
    Private endPos As Integer
 
    Private Sub Suche()
 
        Dim FindFlags As Short
        Dim Position As Integer
        Dim repeat As Boolean
        Dim start As Integer
 
        If startSearch Then
            startPos = dtp.SelectionStart
            endPos = dtp.TextLength
            startSearch = False
            start = startPos
        Else
            start = dtp.SelectionStart + 1
        End If
 
        dtp.SelectionLength = 0
 
        If Suchen.Text <> "" Then
            Do
                repeat = False
                FindFlags = Gross.CheckState * 4 + Wort.CheckState * 2
                Position = dtp.Find(Suchen.Text, start, endPos, FindFlags)
                dtp.Focus()
                If Position < 0 Then
                    If startPos > 0 Then
                        Dim dr As DialogResult = MsgBox("Text not found" & _
                          vbCrLf & "Restart at beginning of text?", _
                          MsgBoxStyle.YesNo)
                        If dr = DialogResult.Yes Then
                            start = 0
                            endPos = startPos
                            startPos = 0
                            repeat = True
                        Else
                            startSearch = True
                            Return
                        End If
                    Else
                        MsgBox("Text not found", MsgBoxStyle.OKOnly)
                        startSearch = True
                        Return
                    End If
                End If
            Loop While repeat
        Else
            MsgBox("Enter search text")
        End If
 
    End Sub
 
    Private Sub dtp_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
      Handles dtp.Click
        startSearch = True
    End Sub

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Suchen funktion1.250A.Wirt26.07.05 13:01
Re: Suchen funktion944ModeratorDaveS26.07.05 13:10
Re: Suchen funktion1.062A.Wirt26.07.05 13:15
Re: Suchen funktion952ModeratorDaveS26.07.05 13:24
Re: Suchen funktion1.075A.Wirt26.07.05 14:00
Re: Suchen funktion1.910ModeratorDaveS26.07.05 15:16
Re: Suchen funktion998A.Wirt26.07.05 19:47
Re: Suchen funktion1.000A.Wirt27.07.05 11:57

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-2025 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