Ich möchte, dass jemand in den Input einen Text eingeben kann und das Programm erkennt wenn der Satz ein bestimmtes Wort erhält. Hat da jemand einen Ratschlag, ich habe jetzt schon 1-2 Stunden im Internet gesucht, aber nichts gefunden

Ein bestimmtes Wort im Text suchen
-
pltnpcs -
19. April 2017 um 21:01 -
Erledigt
-
-
StringInStr().
Wenn es auch kein Bestandteil von anderen Wörtern sein darf dann per StringRegExp wo als Pattern das Wort umschlossen von zwei \b ist. -
Ob ein String in einem anderen vorkommt, kannst du mit StringInStr herausfinden.
-
- Offizieller Beitrag
@plnpcs: Warum machst Du noch einen Thread auf mit dem gleichen Inhalt?
Ich habe Dir bereits in: Wenn im Input "Hallo" steht im Output "Hey" stehen lassen die Antwort gegeben. -
Ja Klar hier bitte, dabei konnte ich mich auch gleich mit etwas beschäftigen das mich interessierte. Ich weiß nicht für was du es brauchst also hab ich mal einfach ein script geschrieben das den Text nach 'verbotenen' worten durchsucht & diese mit Sternchen ersetzt.
Keine ahnung in wiefern du Programmiertechnisch bewandert bist, also erkläre ich es dir einmal. Du erstellst eine textdatei namens 'Banwords.txt' dort sollte in jeder Zeile ein 'Böses' Wort stehen.
Du hast auch die möglichkeit einzustellen ob die Wörter ersetzt werden oder eben nicht. Einfach bei $REPLACE 0 für nein und 1 für ja.
Allerdings kann die InputBox nicht übermäßig viele Zeichen aufnehmen, so das ich darauf auswich den text aus einer Datei zu lesen. diese solltest du im selben ordner 1.txt nennen. das kannst du natürlich auch alles umbenennen wenn du magst. Ich war schlichtweg gerade zugemächlich um dir eine GUI zu schreiben.
Ich empfehle dir einen text von Stupidpedia zu kopieren. Diesen einfach in die datei 1.txt einzutragen & in der Datei banwords.txt ein paar im text vorhandene Begriffe einzutippen(nicht vergessen jede linie ein wort).
AutoIt
Alles anzeigenLocal $TEMPVar = FileOpen(@ScriptDir & '\Banwords.txt') ;<=) Banwordliste Local $SearchStrings = FileReadToArray($TEMPVar) FileClose($TEMPVar) Local $SearchFile_O = FileOpen(@ScriptDir & '\1.txt') ;<=) Text zum analysieren Local $TextToAnalyze = FileRead($SearchFile_O) FileClose($SearchFile_O) Local $STERNCHENS, $STERNCHENS_1, $CASESENSE = 0, $REPLACE = 1 For $i = 0 To UBound($SearchStrings)-1 Step 1 if StringInStr($TextToAnalyze, $SearchStrings[$i], $CASESENSE) Then ConsoleWrite('Found Banned Word "' & $SearchStrings[$i] & '"' & @CRLF) if $REPLACE = 1 Then $STERNCHENS_1 = StringLen($SearchStrings[$i]) $STERNCHENS = '' For $is = 1 To $STERNCHENS_1 Step 1 $STERNCHENS &= '*' Next $TextToAnalyze = StringReplace($TextToAnalyze, $SearchStrings[$i], $STERNCHENS) EndIf EndIf Next Local $Save_O = FileOpen(@ScriptDir & '\Analyzed.txt', 2) ;<=) Datei für den überarbeiteten Text FileWrite($Save_O, $TextToAnalyze) FileClose($Save_O)
-
@plnpcs: Warum machst Du noch einen Thread auf mit dem gleichen Inhalt?
Ich habe Dir bereits in: Wenn im Input "Hallo" steht im Output "Hey" stehen lassen die Antwort gegeben.Huch, haha ich denke das ist jetzt nicht weiter wild das ich deine Antwort überlesen habe
-
@Candyland Vielen, vielen Dank, ich habe mich zwar vorher schon über StringinStr informiert aber dein Beispiel hat exakt das Problem gelöst!
-
@Oscar Du hast mir beim letzten Thema geholfen aber bei dieser Sache war es ein anderes Problem
-
@Candyland Vielen, vielen Dank, ich habe mich zwar vorher schon über StringinStr informiert aber dein Beispiel hat exakt das Problem gelöst!
Sogar Exakt haha Dabei dachte ich, als ich das andere Thema laß, das du eine art Program versuchst zu schreiben welches auf Befehle des Benutzers reagiert