Button gibt meine Textboxabfrage nicht durch

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RyoSaki.

    Button gibt meine Textboxabfrage nicht durch

    Mein ziel war es ein Programm zu erstellen wo ich per Drag and Drop Datein in die Form ziehe, diese dann in einer Listbox gespeichert werden und ich dann ein Suchwort eingeben kann und per MessageBox die zeile und zeilen nr ausgibt, zusätzlich soll dann in der Listbox die der dateibackground blau werden.
    Mit dem Drag und Drop funktionier auch alles gut nur hab ich einen großen Fehler den ich bei aller Liebe einfach nicht verstehen will.
    Ich zieh die Datei rein, gebe mein Wort ein und drücke auf cmdAbfragen und....nichts passiert. Ich gebe nichts in das Suchfeld ein es wird eine Messagebox ausgegeben mitdem ersten Buchstaben der txt datei...

    Pls help oder gibt mir bitte einen Tipp woran es lägen könnte notfalls geh ich dann auf googletour 2.0
    Freue mich über jeglichen tipp und Hilfe und bedanke mich schonmal in Voraus

    Ps.: Falsch ich das Thema falsch geöffnet hab sorry :(


    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter
    3. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    4. e.Effect = DragDropEffects.Copy
    5. End If
    6. End Sub
    7. Private Sub Form1_DragDrop(sender As Object, e As DragEventArgs) Handles Me.DragDrop
    8. Dim files() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())
    9. For Each _file In files
    10. ListBox1.Items.Add(_file)
    11. Next
    12. End Sub
    13. Private Sub CmdAbfragen_Click(sender As Object, e As EventArgs) Handles cmdAbfragen.Click
    14. 'SuchAbfrage()
    15. Dim query As String = TextBox1.Text.ToLower()
    16. ListBox1.BeginUpdate()
    17. For Each _file As String In ListBox1.Items
    18. Dim content As String = CChar(File.ReadAllText(_file))
    19. Dim lines As String() = content.Split(CChar(Environment.NewLine))
    20. For i As Integer = 0 To lines.Length - 1
    21. If lines(i).ToLower().Contains(query) = True Then
    22. Dim lineindex As Integer = i + 1
    23. Dim message As String = $"{_file} - line {lineindex}: {lines(i)}"
    24. MessageBox.Show(message)
    25. ListBox1.SetSelected(ListBox1.Items.IndexOf(_file), True)
    26. End If
    27. Next
    28. Next
    29. ListBox1.EndUpdate()
    30. End Sub
    31. Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
    32. e.DrawBackground()
    33. Dim brush As Brush = Brushes.Black
    34. If CBool((e.State And DrawItemState.Selected)) Then
    35. brush = Brushes.Blue
    36. End If
    37. e.Graphics.DrawString(CStr(ListBox1.Items(e.Index)), e.Font, brush, e.Bounds, StringFormat.GenericDefault)
    38. e.DrawFocusRectangle()
    39. End Sub
    40. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „RyoSaki“ ()

    @RyoSaki Willkommen im Forum. :thumbup:
    Probier mal:

    VB.NET-Quellcode

    1. Dim lines As String() = File.ReadAllLines(_file)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    … denn Deine Zeile Dim content As String = CChar(IO.File.ReadAllText(_file)) macht definitiv nicht, was Du willst - was immer das hier auch sein könnte.

    btw: ebenfalls willkommen im Forum.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter
    4. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    5. e.Effect = DragDropEffects.Copy
    6. End If
    7. End Sub
    8. Private Sub Form1_DragDrop(sender As Object, e As DragEventArgs) Handles Me.DragDrop
    9. Dim files() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())
    10. For Each _file In files
    11. ListBox1.Items.Add(_file)
    12. Next
    13. End Sub
    14. Private Sub CmdAbfragen_Click(sender As Object, e As EventArgs) Handles cmdAbfragen.Click
    15. 'SuchAbfrage()
    16. Dim query As String = TextBox1.Text.ToLower()
    17. ListBox1.BeginUpdate()
    18. For Each _file As String In ListBox1.Items
    19. Dim content As String = CChar(File.ReadAllText(_file))
    20. '-------------------------------------------------
    21. Dim lines As String() = File.ReadAllLines(_file)
    22. '----------------------------------------------
    23. 'Dim lines As String() = content.Split(CChar(Environment.NewLine))
    24. For i As Integer = 0 To lines.Length - 1
    25. If lines(i).ToLower().Contains(query) = True Then
    26. Dim lineindex As Integer = i + 1
    27. Dim message As String = $"{_file} - line {lineindex}: {lines(i)}"
    28. MessageBox.Show(message)
    29. ListBox1.SetSelected(ListBox1.Items.IndexOf(_file), True)
    30. End If
    31. Next
    32. Next
    33. ListBox1.EndUpdate()
    34. End Sub


    Leider funktioniert es leider immernoch nicht hab auch noch mal Im internet geschaut aber find leider nichts dazu, wieso mein Button nur reagiert wenn das Textfeld leer gelassen wird

    Ps.: vielen Dank bin neu im Bereich vb.net und mache aktuell ein Praktikum mit folgender Ausbildung^^

    Psps.: hab noch mal ein paar screenshots gemacht und versucht dort die sache so genau wie möglichst zu erklären

    Für tipps und erklärungen bin ich gerne bereit :3

    Mit Freundlichen Grüßen
    Ryo
    Bilder
    • 2.png

      13,9 kB, 373×346, 117 mal angesehen
    • Anfang.png

      24,52 kB, 366×335, 119 mal angesehen
    • 3.png

      17,24 kB, 375×462, 114 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „RyoSaki“ ()

    RyoSaki schrieb:

    mein Button nur reagiert wenn das Textfeld leer gelassen wird
    Kann ich nicht bestätigen. Habe eine Textdatei aufs Form gezogen, habe einen Textteil vom Inhalt in die TextBox geschrieben und den Button geklickt. Es werden nun alle Zeilen nacheinander angezeigt, die diesen Text enthalten. So what?

    btw: Die Dim content As String = CChar(File.ReadAllText(_file)) ist immer noch inhaltlich falsch. Da Du content aber nicht mehr verwendest, kannst Du die Zeile auch löschen.

    Allerdings find ich interessant bis nicht nachvollziehbar, dass ListBox1.SetSelected(ListBox1.Items.IndexOf(_file), True) Deine For-Each-Schleife (zer)stört. Musst wohl mit einer normalen Schleife arbeiten, damit es keinen Crash gibt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Hab gerade gesehen warum es nicht ausgegeben wurde, war eher meine Dummheit als ein Fehler nach dem ich
    den Code von @RodFromGermany eingefügt hatte. Ging es nur hatte ich statt "Hello" was in der Textdatei stand "hallo" geschrieben und das hat das Program ja auch richtig regiert nix auszugeben. Von daher danke nochmals hab Dim content As String = CChar(File.ReadAllText(_file)) nun entdernt dachte anfangs noch es wäre relevant aber da ich ja auch Dim lines As String() = content.Split(CChar(Environment.NewLine)) entfernt hab wird content wirklich nirgends mehr angesprochen-

    Vielen dank für die Hilfe von euch beiden, schick den Code noch später Vollständig rein fals jmd mal selbiges Problem hat

    MfG
    Ryo



    So das ist der Code der soweit funktioniert, einziger abstrich den ich jetzt gemacht hab ist da nicht mehr die genaue Zeile ausgeben wird sondern nur die Datei. Gab die ganze Zeit dadurch den Absturz den Programmes^^


    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Net.WebRequestMethods
    3. Public Class Form1
    4. Private Sub Form1_DragEnter(sender As Object, e As DragEventArgs) Handles Me.DragEnter
    5. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    6. e.Effect = DragDropEffects.Copy
    7. End If
    8. End Sub
    9. Private Sub Form1_DragDrop(sender As Object, e As DragEventArgs) Handles Me.DragDrop
    10. Dim files() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())
    11. For Each _file In files
    12. ListBox1.Items.Add(_file)
    13. Next
    14. End Sub
    15. Private Sub CmdAbfragen_Click(sender As Object, e As EventArgs) Handles cmdAbfragen.Click
    16. Dim query As String = TextBox1.Text.ToLower()
    17. ListBox1.BeginUpdate()
    18. For Each _file As String In ListBox1.Items
    19. '-----------------------------------------------------------------
    20. 'Dim content As String = CChar(File.ReadAllText(_file))
    21. 'Dim lines As String() = content.Split(CChar(Environment.NewLine))
    22. '-----------------------------------------------------------------
    23. 'For i As Integer = 0 To lines.Length - 1
    24. ' If lines(i).ToLower().Contains(query) = True Then
    25. ' Dim lineindex As Integer = i + 1
    26. ' Dim message As String = $"{_file} - line {lineindex}: {lines(i)}"
    27. ' MessageBox.Show(message)
    28. ' ListBox1.SetSelected(ListBox1.Items.IndexOf(_file), True)
    29. ' End If
    30. 'Next
    31. '------------------------------------------------------------------
    32. Dim lines As String() = IO.File.ReadAllLines(_file)
    33. Dim message As String = $"{_file}"
    34. MessageBox.Show(message)
    35. Next
    36. ListBox1.EndUpdate()
    37. End Sub
    38. Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem
    39. e.DrawBackground()
    40. Dim brush As Brush = Brushes.Black
    41. If CBool((e.State And DrawItemState.Selected)) Then
    42. brush = Brushes.Blue
    43. End If
    44. e.Graphics.DrawString(CStr(ListBox1.Items(e.Index)), e.Font, brush, e.Bounds, StringFormat.GenericDefault)
    45. e.DrawFocusRectangle()
    46. End Sub
    47. 'Private Sub SuchAbfrage()
    48. ' Dim query As String = TextBox1.Text.ToLower()
    49. ' ListBox1.BeginUpdate()
    50. ' For Each _file As String In ListBox1.Items
    51. ' '-----------------------------------------------------------------
    52. ' 'Dim content As String = CChar(File.ReadAllText(_file))
    53. ' 'Dim lines As String() = content.Split(CChar(Environment.NewLine))
    54. ' '-----------------------------------------------------------------
    55. ' 'For i As Integer = 0 To lines.Length - 1
    56. ' ' If lines(i).ToLower().Contains(query) = True Then
    57. ' ' Dim lineindex As Integer = i + 1
    58. ' ' Dim message As String = $"{_file} - line {lineindex}: {lines(i)}"
    59. ' ' MessageBox.Show(message)
    60. ' ' ListBox1.SetSelected(ListBox1.Items.IndexOf(_file), True)
    61. ' ' End If
    62. ' 'Next
    63. ' '------------------------------------------------------------------
    64. ' Dim lines As String() = IO.File.ReadAllLines(_file)
    65. ' Dim message As String = $"{_file}"
    66. ' MessageBox.Show(message)
    67. ' Next
    68. ' ListBox1.EndUpdate()
    69. 'End Sub
    70. End Class


    Als nächstens Versuch ich die datein nicht mehr per Frag and Drop einzufügen sondern per OpenFileDialog aber das versuch ich erstmal allein bringt ja nix wenn ich nur frag wie das funktioniert ^^'
    Ich meld mich wieder wenn ich irgendwo hänge und danke nochmals für eure Hilfe

    MfG
    Ryo

    Beiträge zusammengefügt. ~Thunderbolt

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

    RyoSaki schrieb:

    da nicht mehr die genaue Zeile ausgeben wird sondern nur die Datei
    Der auskommentierte Code hat doch diesbezüglich funktioniert. Warum hast Du ihn deaktiviert? Nur die automatische Selektierung der ListBox-Items hat nicht funktioniert. Aber wie man das zu laufen bringen kann, hab ich ja geschrieben.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    So hab nun alles nochmal überarbeitet paar Sachen hinzugefügt wie zum Beispiel das nun unten in der Taskleiste als icon angezeigt wird und darüber geöffnet und geschlossen werden kann. Auch das man das Programm nicht mehr mit dem 'X' schließt sondern unten per Contextmenü "Closing App"

    Leider hab ich erst später bemerkt das der Fehler wie @VaporiZed leider in der Fore Each schleife liegt und das dadurch der Code garnicht so funktioniert wie ich es eig will.
    Ich hab versucht sie in eine Do Until Schleife zu ändern aber nur falsche oder garnkeine lösungen gefunden deswegen wollt ich nochmals Frage ob mir jmd erklären kann in welche Schleife soll ich es am betsen ändern und wie^^'

    VB.NET-Quellcode

    1. ​Private Sub SuchAbfrage()
    2. 'FEHLER
    3. 'Soll nach dem Suchwort in allen Datein suchen und eine
    4. 'MessageBox ausgeben wo das Wort gefunden wurde
    5. Dim query As String = TextBox1.Text.ToLower()
    6. ListBox1.BeginUpdate()
    7. For Each _file As String In ListBox1.Items
    8. '-----------------------------------------------------------------
    9. Dim content As String = CChar(IO.File.ReadAllText(_file))
    10. Dim lines As String() = IO.File.ReadAllLines(_file)
    11. 'Dim lines As String() = content.Split(CChar(Environment.NewLine))
    12. '-----------------------------------------------------------------
    13. For i As Integer = 0 To lines.Length - 1
    14. If lines(i).ToLower().Contains(query) = True Then
    15. Dim lineindex As Integer = i + 1
    16. Dim message As String = $"{_file} - line {lineindex}: {lines(i)}"
    17. MessageBox.Show(message)
    18. ListBox1.SetSelected(ListBox1.Items.IndexOf(_file), True)
    19. End If
    20. Next
    21. Next
    22. ListBox1.EndUpdate()
    23. End Sub



    Schicke wenn der Code komplett ist ihn nochmals Ganz rein

    MfG
    Ryo Saki

    VaporiZed schrieb:

    Musst wohl mit einer normalen Schleife arbeiten, damit es keinen Crash gibt.
    Da hab ich mich wohl zu unklar ausgedrückt. Mit normaler Schleife meinte ich in diesem Zusammenhang eine normale For-Schleife, also For j = 0 To ListBox1.Items.Count - 1
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für die schnelle Antwort hab die For-Schleife irgendwie vergessen und nur an die Do schleife gedacht. Hab mal deine lösung sozusagen übernommen und auch die _files durch j ersetzt. Da ich ja option Strict on habe auch die umwandlung von integer in string wo es gefordert war.

    VB.NET-Quellcode

    1. ​Private Sub SuchAbfrage()
    2. 'FEHLER
    3. 'Soll nach dem Suchwort in allen Datein suchen und eine
    4. 'MessageBox ausgeben wo das Wort gefunden wurde
    5. Dim query As String = TextBox1.Text.ToLower()
    6. ListBox1.BeginUpdate()
    7. For j = 0 To ListBox1.Items.Count - 1
    8. '-----------------------------------------------------------------
    9. Dim content As String = IO.File.ReadAllText(CStr(j)) REM hier
    10. Dim lines As String() = IO.File.ReadAllLines(CStr(j)) REM hier
    11. 'Dim lines As String() = content.Split(CChar(Environment.NewLine))
    12. '-----------------------------------------------------------------
    13. For i As Integer = 0 To lines.Length - 1
    14. If lines(i).ToLower().Contains(query) = True Then
    15. Dim lineindex As Integer = i + 1
    16. Dim message As String = $"{j} - line {lineindex}: {lines(i)}" REM hier
    17. MessageBox.Show(message)
    18. ListBox1.SetSelected(ListBox1.Items.IndexOf(j), True) REM hier
    19. End If
    20. Next
    21. Next
    22. ListBox1.EndUpdate()
    23. End Sub


    Nun sagt er mir als Fehlermeldung Die Datei "C:\Users\gerstnerm\source\repos\Test 1\Test 1\bin\Debug\0" konnte nicht gefunden werden."
    ^^'
    was mir den grund gab in dem Pfad nachzuschaun hab aber nichts gefunden was mir weiterhilft hatte auch versucht mit strg + Umschalt + B
    die projektmappe neu zuerstellen, leider tritt danach immernoch der selbe fehler auf

    MfG Ryo Saki
    Das ist ja immer noch diese überflüssige content-Zeile …
    Lass Dir mal durch den Kopf gehen … oder besser: Erklär mir mal, was Deine ursprüngliche Zeile

    VB.NET-Quellcode

    1. Dim lines As String() = IO.File.ReadAllLines(_file)
    en détail macht und was Deine jetzige Zeile

    VB.NET-Quellcode

    1. Dim lines As String() = IO.File.ReadAllLines(CStr(j))
    macht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Die content Zeile war nur wieder drin wegen eines Copy vorgang und habs bissl verpeilt sie wieder auszukommetieren bzw löschen


    VaporiZed schrieb:

    Dim lines As String() = IO.File.ReadAllLines(_file)


    liest alle Zeilen einer Textdatei mit dem Dateinamen _files aus und speichert sie in einem Array mit dem namen lines....i think


    VaporiZed schrieb:

    Dim lines As String() = IO.File.ReadAllLines(CStr(j))


    liest den gesamten Inhalt einer Textdatei mit dem Pfad der in der variablen j gespeichert ist und speichert sie in der variablen namens lines ?

    Bzw bin mir nicht ganz sicher bei beiden zeilen aber so würd ich sie interpretieren...


    MfG
    Ryo Saki

    RyoSaki schrieb:

    mit dem Pfad der in der variablen j gespeichert ist

    VB.NET-Quellcode

    1. For j = 0 To ListBox1.Items.Count - 1
    Denk oder schau mal nach, was in j konkret drinsteckt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wie ich das schaue weiß ich nicht genau hab nun mit:

    VB.NET-Quellcode

    1. MessageBox.Show(j)

    mir den Inhalt ausgeben lassen und es war 0 danach springt automatisch der Fehler rein das "InvalidArgument=Value mit dem Wert -1 ist für index ungültig.
    was ich ja auch versteh bei der zweiten ausführung der schleife wird ja 0-1 gerechnet da der was -1 ergibt.
    Sorry wenn meine fragen etwas dumm klingen, aber bin noch relativ neu mit vb.net
    --------------------------------------------------
    EDIT: Nevermind hab nun ein andere Methode genutzt j auszugeben und dort zählt die messagebox von 0 bis 3 hoch
    Da ich nicht weiß ob es erlaubt ist den ersten Text zulöschen schreib ich einfach hier weiter.

    Also durch Dim dialogResult1 = MessageBox.Show(CStr(j)) hab ich gesehen das j von 0 bis 3 hochzählt wenn ich 4 Datein einfüge, was ich auch verstehe da solch ein Array(3), 4 beinhaltet heißt 0, 1, 2, 3

    Dann stimmt eigentlich nur etwas nicht mit dieser Zeile
    ListBox1.SetSelected(ListBox1.Items.IndexOf(j), True)

    Edit 2:
    Hab das jetzt auch gelöst bekommen bzw halbwegs.

    VB.NET-Quellcode

    1. Private Sub SuchAbfrage()
    2. 'FEHLER
    3. 'Soll nach dem Suchwort in allen Datein suchen und eine
    4. 'MessageBox ausgeben wo das Wort gefunden wurde
    5. Dim query As String = TextBox1.Text.ToLower()
    6. ListBox1.BeginUpdate()
    7. For j As Integer = 0 To ListBox1.Items.Count - 1
    8. 'Dim dialogResult1 = MessageBox.Show(CStr(j))
    9. Dim lines As String() = IO.File.ReadAllLines(_File)
    10. For i As Integer = 0 To lines.Length - 1
    11. If lines(i).ToLower().Contains(query) = True Then
    12. Dim lineindex As Integer = i + 1
    13. Dim message As String = $"{_File} - line {lineindex}: {lines(i)}"
    14. MessageBox.Show(message)
    15. ListBox1.SetSelected(j, True)
    16. End If
    17. Next
    18. Next
    19. ListBox1.EndUpdate()
    20. End Sub


    So sieht nun der aktuelle Code aus.
    und mit der weiterentwicklung treten neue Fehler auf....(Das füllt sich so an als würd ich dem Code wirklich schmerzen bereiten...)
    Nun zieh ich meine Beliebten 4 TextDatein rein die er durchsuchen soll und er gibt immer von ein und der selben datei die zeilen aus wo auf das codewort zutreffen und fasst die anderen Datein garnicht an...

    MfG
    Ryo Saki

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „RyoSaki“ ()

    j ist also eine Zählvariable. Sie zählt von 0 bis X hoch. X ist die Anzahl der ListBox-Items minus 1. Bei 28 ListBox-Einträgen wird j also nacheinander die Werte von 0 bis 27 in Einerschritten hochgehen.
    Und um jetzt aus dem j einen Dateipfad "zu machen", musst Du die ListBox-Einträge hernehmen, denn der Zählindex beschreibt den entsprechenden Eintrag in der ListBox.
    Also

    VB.NET-Quellcode

    1. Dim lines As String() = IO.File.ReadAllLines(ListBox.Items(j).ToString)
    Dein

    VB.NET-Quellcode

    1. Dim lines As String() = IO.File.ReadAllLines(_File)
    ergibt keinen Sinn, da _file mit nichts Sinnvollem befüllt wird.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Vielen Dank nochmal ich denke ich habs jetzt mit deiner Hilfe hinbekommen. :3

    VB.NET-Quellcode

    1. Private Sub SuchAbfrage()
    2. Dim query As String = txtSuchbegriff.Text.ToLower()
    3. lbDateien.BeginUpdate()
    4. For j As Integer = 0 To lbDateien.Items.Count - 1
    5. Dim filepath As String = lbDateien.Items(j).ToString()
    6. Dim lines As String() = IO.File.ReadAllLines(filepath)
    7. For i As Integer = 0 To lines.Length - 1
    8. If lines(i).ToLower().Contains(query) = True Then
    9. Dim lineindex As Integer = i + 1
    10. Dim message As String = $"{filepath} - line {lineindex}: {lines(i)}"
    11. MessageBox.Show(message)
    12. lbDateien.SetSelected(j, True)
    13. End If
    14. Next
    15. Next
    16. lbDateien.EndUpdate()
    17. End Sub


    Funktioniert :thumbsup: