Mein Speakbot soll keine Ausdrücke sagen, sondern Kontern

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Turtle10.

    Mein Speakbot soll keine Ausdrücke sagen, sondern Kontern

    VB.NET-Quellcode

    1. Dim s
    2. s = CreateObject("sapi.spvoice")
    3. s.speak(TextBox1.Text)
    4. If TextBox1.Text = "böses" Or "wort" Then
    5. s.speak("I never will say this!")
    6. End If


    Das Klappt irgendwie nicht :(
    1. Was genau klappt nicht?
    2. Sicher das die Ausgabe Funktioniert? Ich kenne es mit der System.Speech.Synthesis Klasse.
    3. Die If Abfrage ist nicht korrekt... (Grundlagen lernen...)

    Nicht so...

    -Media5- schrieb:

    If TextBox1.Text = "böses" Or "wort" Then s.speak("I never will say this!") End If
    ...sondern so:

    VB.NET-Quellcode

    1. If TextBox1.Text = "böses" Or TextBox1.Text = "wort" Then
    2. s.speak("I never will say this!")
    3. End If



    LG
    Hi,

    in deiner If-Abfrage muss es heißen OrElse. Und außerdem spricht er den Text in der TextBox auf jeden Fall, da der erste Speak-Befehl vor der If-Abfrage steht. Das gehört, wenn ich das richtig sehe, in einen Else-Zweig...

    MfG

    //EDIT: Mist, zu spät...
    Or ist ein logischer Operator...
    "böses" + "wort" kann z.B. nicht gerechnet werden, ebenfalls wird dies mit Or nicht funktionieren...
    If TextBox1.Text = "böses" Or TextBox1.Text = "wort" Then...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Vier Mal die Gleiche Antwort. Genial :P

    Jetzt müsste eigentlich alles klar sein.
    Lerne am besten die Grundlagen gründlicher.


    in deiner If-Abfrage muss es heißen OrElse. Und außerdem spricht er den Text in der TextBox auf jeden Fall, da der erste Speak-Befehl vor der If-Abfrage steht. Das gehört, wenn ich das richtig sehe, in einen Else-Zweig...
    Wieso das? Er prüft doch, ob sich das Wort in der Textbox befindet. Also WENN sich das Wort "WORT" IN der TextBox befindet, dann soll er NICHT das Wort ausgeben, sondern das er es nicht ausgeben will...


    LG
    nummer 5^^ aber bisschen anders

    VB.NET-Quellcode

    1. Dim s
    2. s = CreateObject("sapi.spvoice")
    3. s.speak(TextBox1.Text)
    4. If TextBox1.Text = "böses" Then
    5. s.speak("I never will say this!")
    6. ElseIf TextBox1.Text = "Wort" Then
    7. s.speak("I never will say this!")
    8. End If


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Danke an alle so soeht der Code jetzt aus:

    VB.NET-Quellcode

    1. Dim speech
    2. speech = CreateObject("sapi.spvoice")
    3. If TextBox1.Text = "fuck" Then
    4. speech.speak("I never will say this!")
    5. Else
    6. speech.speak(TextBox1.Text)
    7. End If


    So aber wenn jetzt jemand eingibt fuck you, wird beides ausgesprochen gibt es nicht eine möglichtkeit die ungefähr so lautet:

    Wenn Textbox1.Text = fuck dann satz ersetzten durchi never will say this

    Sry wegen dem fck :S aber so gehts schneller als wenn ich hier alles umschreibe.

    Viele Grüsse
    If TextBox1.Text.ToLower().Contains("fuck") Then ...

    ToLower() verwandelt alles in Kleinbuchstaben, da verhinderst du, dass man z.B. FUCK oder fUCk usw. schreibt.

    Das, was du prüfst, muss dann natürlich auch in Kleinbuchstaben sein.

    MfG

    LaPi schrieb:

    If TextBox1.Text.ToLower().Contains("fuck")

    MB-Tech schrieb:

    Vier Mal die Gleiche Antwort. Genial :P

    Jetzt müsste eigentlich alles klar sein.
    Lerne am besten die Grundlagen gründlicher.


    in deiner If-Abfrage muss es heißen OrElse. Und außerdem spricht er den Text in der TextBox auf jeden Fall, da der erste Speak-Befehl vor der If-Abfrage steht. Das gehört, wenn ich das richtig sehe, in einen Else-Zweig...
    Wieso das? Er prüft doch, ob sich das Wort in der Textbox befindet. Also WENN sich das Wort "WORT" IN der TextBox befindet, dann soll er NICHT das Wort ausgeben, sondern das er es nicht ausgeben will...


    LG
    Danke LaPi ;)
    Vielmals

    MB-Tech schrieb:

    Wieso das? Er prüft doch, ob sich das Wort in der Textbox befindet. Also WENN sich das Wort "WORT" IN der TextBox befindet, dann soll er NICHT das Wort ausgeben, sondern das er es nicht ausgeben will...


    Nur, dass er (in der ersten Codeversion) den Text in der Textbox vorher auf jeden Fall ganz ausspricht, egal ob er ein "zensiertes" Wort enthält, oder nicht (erster Speak-Befehl). Und das ist ja wohl nicht im Sinne des Erfinders...

    MfG