TextBox Suche

  • VB.NET

Es gibt 63 Antworten in diesem Thema. Der letzte Beitrag () ist von Xylon.

    TextBox Suche

    Hallo liebe Community!
    ich habe jetzt eine sehr sehr lange Zahlenfolge in meiner Rich TextBox, und ich würde gerne eine Suchfunktion einbauen. Dabei sollen die Zahlen aus einer anderen TextBox genommen und in der RichTextBox gesucht werden. Ich habs auch schon mit Find versucht, aber da bekomme ich immer -2 als Ergebnis :O.
    Jedenfalls ist das hier schonmal mein Ansatz:

    VB.NET-Quellcode

    1. If RichTextBox2.TextLength > 1 And RichTextBox3.TextLength > 1 And TextBox1.TextLength > 1 Then
    2. TextBox4.Text = RichTextBox3.Find(Mid(TextBox1.Text, 8, 8))
    3. End If

    Dabei wird in der TextBox4 dann ausgegeben, was in der RichTextBox aus der TextBox1 gesucht wird. Heißt also, wenn ich jetzt
    00000000 00000000
    in der TextBox1 habe, soll in der RichtextBox nach diesen 8 Zahlen suchen, und in der TextBox4 ausgegeben werden. Aber wie schon gesagt, bekomme ich immer nur -2 als Ergebnis.

    Danke schonmal im Voraus.
    Es wäre schön, wenn du deine Controls benennen würdest. Dann müsste man sich deine Frage nicht tausend mal durchlesen, um den Sinn zu verstehen. Ich hab das so verstanden:
    Du hast eine rtb_text, eine txt_search und eine txt_result. In der rtb_text soll der Text aus txt_search gesucht werden und in txt_result ausgegeben werden. Aber das ist doch Sinnlos, denn wenn etwas gefunden wird ist doch txt_search = txt_result?!

    Naja, guck dir auf jedenfall mal das an, vorallem das Beispiel.
    Mfg
    Vincent

    @VincentTB
    Ja das klingt sinnlos, aber ich habe insgesamt 2 rtb, ich möchte das auch nur für mich selbst angezeigt haben. Es soll danach halt in der zweiten rtb nach dem gleichen wert gesucht werden. Und die Anzahl der Suchen muss unbedingt die gleiche sein. Aber ich schaffe es ja nichtmal in der rtb zu suchen...

    Trotzdem schonmal danke, ich probiers mit dem Beispiel da.
    Schau dir mal InStr an.

    VB.NET-Quellcode

    1. For i As Integer = 0 To RichTextBox1.Lines.Length - 1
    2. If InStr(RichTextBox1.Lines(i), "Radio") > 0 Then
    3. TextBox4.Text = RichTextBox1.Lines(i)
    4. End If
    5. Next


    Hier wird nach Radio gesucht. Musst du halt anpassen!
    Nimm also ne RTB.
    @programmer71
    Das wars schon? Also ich hatte jetzt das Beispiel von VincentTB benutzt und das so programmiert:

    VB.NET-Quellcode

    1. Dim temp1 As String = Mid(TextBox1.Text, 9, 8)
    2. If RichTextBox2.TextLength > 1 And RichTextBox3.TextLength > 1 And TextBox1.TextLength > 1 Then
    3. TextBox4.Text = FindMyText(searchText:=Mid(RichTextBox3.Text, temp1), searchStart:=1, searchEnd:=20)
    4. End If

    Aber da kommen immer Fehler. Naja dann dankeschön!!
    Jup, VB6 ist auch eine Sprache, die hoffentlich bald ausstirbt.
    Hier der Grund nochmal:
    Warum sollte man die VB6-Funktionen nicht weiterverwenden?
    Sie sind veraltet. Sie verhalten sich anders. Sie sind nicht standardkonform in der .NET-Umgebung (sie sind standardkonform zu VB6) und lassen sich daher nicht einfach in C# konvertieren. Sie führen zu Code, welcher grundlegende Gesetze der objektorientierten Programmierung verletzt.
    Bitte einfach kein VB6 mehr, genauso wie man statt My.Computer.Filesystem den IO-Namespace benutzt.
    Mfg
    Vincent

    @programmer71
    Hatte ich auch schon versucht, aber irgendwie passiert nichts:

    VB.NET-Quellcode

    1. Dim temp As String = Mid(TextBox1.Text, 9, 8)
    2. For i As Integer = 0 To RichTextBox3.Lines.Length - 1
    3. If RichTextBox3.Lines(i).Contains(temp) Then
    4. TextBox4.Text = RichTextBox3.Lines(i)
    5. End If
    6. Next
    Hä? Lass doch das temp raus!
    Da stimmt dann irgendwas nicht.
    Versuchs doch einfach mal mit nem beliebigen String und teste ob es dann geht.
    Denn das muss funktionieren. Machs doch einfach so, dass du die Zahl in der TextBox1 stehen hast und darauf dann zugreifen kannst. Oder hast du jetzt den Code von Vincent und mir gemischt?
    @programmer71
    Ja habe ich. Wieso, müsste doch trotzdem gehen oder? Ich will ja auch, das das aus der einen txt da gesucht wird.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Xylon“ ()

    @programmer71
    Also nochmal:
    postimg.org/image/3srvrou6z/

    Es soll ausschließlich der 32 bit Wert nach dem leerzeichen in der rtb3 gesucht werden. Man soll auch weitersuchen können. Das Problem ist, das die Hexadezimalen Zahlen hier nicht irgendwie geordnet sind. Jedenfalls wird dieser Wert erst in der linken rtb gesucht. Dann soll, wenn er gefunden wurde, die nächsten 8 Zahlen in der rtb3 mit hinzugenommen werden, und dann wird nochmal in der rtb2 (rechts) nach dem gleichen Wert gesucht.

    Beispiel zur verdeutlichung:

    In der txt1 steht:

    8103809E 30000000

    Dann wird 30000000 in der rtb gesucht. Außerdem werden die nächsten 8 Zahlen nach 30000000 in der rtb genommen. Sagen wir mal das wäre 34000000. Dann soll in der rtb2(rechts) nach 3000000034000000 gesucht werden.
    Ich werde später nochmal versuchen das besser zu strukturieren, aber ich will wenigstens schonmal etwas weiterkommen...
    Hey,wenn Du nach einem String im String ( xD) suchen willst verwende
    InStr

    Hier:

    VB.NET-Quellcode

    1. If InStr(RichTextBox1.Text, TextBox1.Text) Then
    2. Label1.Text = "Dein Wort ist vorhanden"
    3. Else
    4. Label1.Text = "Dein Wort ist nicht vorhanden"
    5. End If


    Mfg.eniking1998
    @programmer71
    Aber ist das nicht genauso gut wie Mid?

    @enIking1998
    Es soll aber erst ab einem bestimmten Punkt gesucht werden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Xylon“ ()