Textbox auf Wort überprüfen, was in externer Datei gespeichert ist.

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Fakiz.

    Textbox auf Wort überprüfen, was in externer Datei gespeichert ist.

    Hallo

    Ich möchte gerne den Text meiner Textbox1 mit einer externen Datei überprüfen, die eine Liste mit Wörtern hat.
    Ich möchte keine weitere Textbox nutzen, um in der Textbox1 zu überprüfen, ob ein Wort vorhanden ist, was in der externen Datei steht.

    So hatte ich es mir vorgestellt:

    - Schreibe Text . . .
    - Drücke Button, nun soll festgestellt werden ob in die Textbox ein Wort geschrieben worden ist, was in der externen Datei ist.
    - MessageBox anzeige = "Dieses Wort existiert in der Liste.")


    Ich hoffe ihr könnt mir weiterhelfen :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    VB.NET-Quellcode

    1. Dim Text As String = My.Computer.FileSystem.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Word_List.html")
    2. If Me.TextBox2.Text = Text = True Then
    3. MsgBox(" :-) ")
    4. End If


    Haut irgendwie nicht hin, aber ich habe auch das Gefühl, das ich wieder alles falsch gemacht habe.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

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

    VB.NET-Quellcode

    1. If TextBox2.Text.Contains("Wort") Then
    2. MessageBox.Show("Das Wort ist vorhanden.", "Wort vorhanden", MessageBoxButtons.OK)
    3. Else
    4. MessageBox.Show("Das Wort ist nicht vorhanden.", "Wort nicht vorhanden", MessageBoxButtons.OK)
    5. End If


    So sollte es funktionieren. Die Methode Contains überprüft, ob der angegebene Text in TextBox2 enthalten ist.

    Grasdackel1996 schrieb:

    So sollte es funktionieren.
    Ich denke nicht, denn @Vultrax: möchte, dass der Text übereinstimmt, nicht aber einfach enthalten ist.
    Die Groß- und Kleinschreibung könnten wir ignorieren:

    VB.NET-Quellcode

    1. Dim Text As String = IO.File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Hash.html")
    2. If String.Compare(Me.TextBox2.Text, txt, True) = 0 Then
    3. MessageBox.Show(" :-) ")
    4. End If
    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!
    (Wenn Frage nicht verstanden):
    Ich möchte den Text einer externen Datei durchsuchen, nach Wörtern die in die Textbox geschrieben sind, und wenn ein Wort vorhanden ist, soll eine Meldung ausgeben werden. Die Groß- und Kleinschreibung spielt dabei keine Rolle.

    Ich habe da was gefunden und (etwas verändert) übernommen:

    VB.NET-Quellcode

    1. Dim Word As String = IO.File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Word_List.html")
    2. If InStr(Me.TextBox2.Text, Word) = True Then
    3. MsgBox("Ein Wort aus der Liste wurde gefunden.")
    4. End If


    Tut sich allerdings nichts.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    xtts02 schrieb:

    Vultrax schrieb:

    ob ein Wort vorhanden ist

    VincentTB schrieb:

    mit .Contains prüfen

    Die Antwort ist doch direkt unterhalb der Frage.



    Wie es @Grasdackel1996 gemacht hat, und eigener versuche, aber es geht nur wenn 1 Wort in der Datei angegeben ist .. Sobald 1 zweites Wort hinzu kommt erkennt er es schon nicht mehr.

    VB.NET-Quellcode

    1. Dim Word As String = IO.File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\Word_List.html")
    2. If TextBox2.Text.Contains(Word) Then
    3. MessageBox.Show("Das Wort ist vorhanden.", "Wort vorhanden", MessageBoxButtons.OK)
    4. Else
    5. MessageBox.Show("Das Wort ist nicht vorhanden.", "Wort nicht vorhanden", MessageBoxButtons.OK)
    6. End If
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    enIking1998 schrieb:

    Verwende RegEx, .Match ...

    Mfg.eniking1998

    Könntest du mir vielleicht ein "kleines"-Code Beispiel zeigen?

    Auf MSDN verstehe ich nur Bahnhof :huh:
    msdn.microsoft.com/de-de/libra…larexpressions.regex.aspx
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    @Vultrax:
    Da hier alles drunter und drüber geht, frage ich nochmal nach:
    In der TextBox1 (die super aussagekräftig benannt ist) steht was? Der zu durchsuchende Text? Oder die Worte, die gesucht werden sollen?
    Selbe Frage für die Datei.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Niko Ortner schrieb:

    @Vultrax:
    Da hier alles drunter und drüber geht, frage ich nochmal nach:
    In der TextBox1 (die super aussagekräftig benannt ist) steht was? Der zu durchsuchende Text? Oder die Worte, die gesucht werden sollen?
    Selbe Frage für die Datei.


    1). In der Textbox1 wird ein Wort oder mehrere Wörter geschrieben.
    2). Es gibt eine Datei in der Wörter stehen, und es soll via. Button_click festgestellt werden, ob ein / oder mehrere Wörter aus der externen Datei in der Textbox stehen, und dann eine MessageBox angezeigt werden.

    z.B. MsgBox("Ein Wort in der Textbox gibt es in der externen Datei.")
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    @Vultrax:

    Ok. Also musst Du den Text in der TextBox an Leerzeichen splitten.
    Dann prüfst Du für jedes Wort, ob es in der Datei enthalten ist. Dazu lädst Du den Inhalt der Datei mit System.IO.File.ReadAllText() in eine Variable und prüfst in einer For-Each-Schleife für jedes Element, ob es im Dateiinhalt vorhanden ist.

    PS: Vollzitate sind unnötig.

    Edit: @enIking1998: Ich würde eher sagen, dass RegEx overkill dafür ist.
    Das ist als würdest Du mit 'ner Motorsäge zahnstocher auseinanderschneiden.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    @xtts02: So wie ich es verstanden habe, können die Wörter getrennt vorkommen:
    Datei:

    Quellcode

    1. Das ist ein Test

    TextBox:

    Quellcode

    1. Das ein

    Soll also immer noch erkannt werden.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Niko Ortner schrieb:

    Soll also immer noch erkannt werden.

    In diesem Fall hilft - wie Du bereits in #15 erwähnt hast - eine For-Schleife oder die Methoden aus Array-Klasse
    Beispiel:

    VB.NET-Quellcode

    1. Dim input = "Es gibt eine Datei in der Wörter stehen, und es soll via. Button_click festgestellt werden"
    2. Dim search = "gibt soll werden"
    3. Dim findSingle As Boolean = False ' finde eines der Wörter oder alle
    4. Dim words = search.Split(" "c)
    5. Dim result As Boolean
    6. If findSingle Then
    7. result = Array.Exists(words, Function(x) input.Contains(x))
    8. Else
    9. result = Array.TrueForAll(words, Function(x) input.Contains(x))
    10. End If
    11. If result Then
    12. Stop
    13. Else
    14. Stop
    15. End If
    Danke für die Antworten, ich werde das mal checken :)

    Eigentlich das selbe:

    Wenn ich die externe Datei in eine Textbox1 lade, wie kann ich via. Timer dauerhaft in der Textbox2 nach den Wörtern in der Textbox1 suche?
    Quasi das selbe, nur das die Wörter der externen Datei in einer Textbox stehen.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford