Hallo,
ich sitze nun schon 1 Stunde daran, dass die Textdateien ausgelesen werden sollen. Immer wieder kommen Fehlermeldungen.
Könntet ihr mir dort bitte helfen?
Aktuelles Script :
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
$hGUI = GUICreate("", 620, 657, -1, -1, $WS_POPUP)
$hEdit = GUICtrlCreateEdit("", 0, 0, 633, 529)
$hInput = GUICtrlCreateInput("", 0, 560, 513, 21)
$hBtnSenden = GUICtrlCreateButton("Senden", 528, 560, 75, 25, $WS_GROUP)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
$hBtnBeenden = GUICtrlCreateButton("Beenden", 528, 608, 75, 25, $WS_GROUP)
$hPic = GUICtrlCreatePic("C:\Users\Dennis\Pictures\Tool Background.jpg", 0, 520, 636, 360, BitOR($SS_NOTIFY, $WS_GROUP, $WS_CLIPSIBLINGS))
GUISetState(@SW_SHOW)
Dim $aFragen[2][4] = [["Guten Tag", "Moin", "Hallo"],["geht", "gehts", "stehts", "alles klar"]]
Dim $aAntworten[2][4] = [["Guten Tag, mein Name ist White, wie kann ich ihnen helfen?", "Guten Tag."],["Gut und dir?", "Gut soweit. Und ihnen?", "Das geht dich nichts an!"]]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $hBtnBeenden
Exit
Case $hBtnSenden
$sText = GUICtrlRead($hInput)
_say($hEdit, $sText, @UserName)
$iFragenID = _FrageAnalysieren($sText, $aFragen)
If @error Then
If @error = 1 Then
_say($hEdit, "Du musst schon etwas fragen!", "Computer")
ElseIf @error = 2 Then
_say($hEdit, "Das weiß ich leider nicht", "Computer")
EndIf
Else
_say($hEdit, _SucheAntwort($iFragenID), "Computer")
EndIf
EndSwitch
WEnd
Func _SucheAntwort($iFragenID)
[/autoit] [autoit][/autoit] [autoit]While 1
$iRnd = Random(0, UBound($aAntworten, 2) - 1, 1)
If $aAntworten[$iFragenID][$iRnd] <> "" Then ExitLoop
WEnd
Return $aAntworten[$iFragenID][$iRnd]
EndFunc
Func _Say($hEdit, $sText, $sPerson)
[/autoit] [autoit][/autoit] [autoit]$hWnd = GUICtrlGetHandle($hEdit)
[/autoit] [autoit][/autoit] [autoit]Local $iLength = _GUICtrlEdit_GetTextLen($hWnd)
_GUICtrlEdit_SetSel($hWnd, $iLength, $iLength)
_SendMessage($hWnd, $EM_REPLACESEL, True, $sPerson & ": " & $sText & @CRLF, 0, "wparam", "wstr")
EndFunc ;==>_Say
Func _FrageAnalysieren($sText, $aFragen)
[/autoit] [autoit][/autoit] [autoit]Local $i, $i1
[/autoit] [autoit][/autoit] [autoit]If $sText <> "" Then
For $i = 0 To UBound($aFragen) - 1
For $i1 = 0 To UBound($aFragen, 2) - 1
If StringInStr($sText, $aFragen[$i][$i1], 2) Then
Return $i
EndIf
Next
Next
Else
Return SetError(1, 0, -1)
EndIf
Return SetError(2, 0, -1)
EndFunc ;==>_FrageAnalysieren
Wie kann ich dort
[autoit]$aFragen = _FileReadTo2dArray("Fragen.txt", "|")
$aAntworten = _FileReadTo2dArray("Antworten.txt", "|")
reinbauen, sodass er immer bestimmte Wörter erkennt, wie oben bei meinem Script?