Hallo,
bin durch Zufall beim Googlen auf dieses Forum gestoßen und fand es klasse wie hier Leuten geholfen wird, deshalb dachte ich mir, fragst du auch mal hier vielleicht kann dir ja jemand helfen.
Und zwar habe ich ein Problem mit einem ausgelesenem "Wert".
Mein Script:
Spoiler anzeigen
Func _ReadFile() Local $hFile = FileOpen(@ScriptDir &"\Zahlencode.txt") Local $sSearch, $iMatchLine, $sCurrentLine, $iCurrentLine $sSearch &= GUICtrlRead($combo1) & "|" $sSearch &= GUICtrlRead($combo2) & "|" $sSearch &= GUICtrlRead($combo3) & "|" $sSearch &= GUICtrlRead($combo4) & "|" $sSearch &= GUICtrlRead($combo5) & "|" $sSearch &= GUICtrlRead($combo6) & "|" $sSearch &= GUICtrlRead($combo7) & "|" $sSearch &= GUICtrlRead($combo8) & "|"
$iCurrentLine = 1 ;Zeile 1 -> Anfang $iMatchLine = 0
While True $sCurrentLine = FileReadLine($hFile) If @error Then ExitLoop If StringInStr($sCurrentLine, $sSearch) Then $iMatchLine = $iCurrentLineExitLoop EndIf $iCurrentLine += 1 ;Zeilennummer erhöhen. $sCurrentLine = "" ;Zurücksetzen wegen dem Ergebnis-Handling WEnd $sID = StringReplace($sCurrentLine, $sSearch, "") FileClose($hFile) _ReadFile1($sID)EndFunc ;==>_ReadFileFunc _ReadFile1($sID) Local $hFile = FileOpen("Zahlen_Wörter.txt") Local $iMatchLine, $sCurrentLine, $iCurrentLine, $sHD $iCurrentLine = 1 ;Zeile 1 -> Anfang While True $sCurrentLine = FileReadLine($hFile) If @error Then ExitLoop If StringInStr($sCurrentLine, $sID) Then $iMatchLine = $iCurrentLine ExitLoop EndIf $iCurrentLine += 1 ;Zeilennummer erhöhen. $sCurrentLine = "" ;Zurücksetzen wegen dem Ergebnis-Handling WEnd MsgBox(0, "", "Übereinstimmung in Zeile " & $iMatchLine & @CRLF & @CRLF & $sCurrentLine) FileClose($hFile)
EndFunc ;==>_ReadFile1
Erklärung des Script's und des Ablaufes:
Mein Script liest die Werte aus den Comboboxen aus, wo Zahlen drin stehen (Zahlen von 1 bis 10).
Diese werden dann in der Variable $sSearch gespeichert. Danach wird überprüft ob diese Zahlenkette in der Textdatei vorhanden ist. Wenn diese Zahlenkette vorhanden ist, speichert die Variable die Nummer, die die Zahlenkette hat (Wird hinter der Zahlenkette mit |1 usw. gekennzeichnet). Die Zahlenkette wird so in der Textdatei aufgebaut: 9|3|5|2|7|4|10|1|1 (Die Fett gedruckte Zahl gibt hier die Nummer von der Zahlenkette an). Also die letzte Zahl wird in der Variable $sID gespeichert und in den zweiten Func übernommen. Im zweiten Func wird dann die Textdatei "Zahlen_Wörter.txt" geöffnet und dort wird dann nach der Variable $sID gesucht und wenn diese Zahl gefunden wurde, wird die komplette Zeile in die Variable $sCurrentLine gespeichert und ausgegeben. (Die Textdatei ist so aufgebaut: Hallo|Hans|Meier|1 wobei die fett gedruckte Zahl wieder die Nummer der Zahlenkette darstellt die mit $sID abgeglichen und gleich sein muss).
Das zur Erklärung von dem Script.
Mein Problem ist jetzt folgendes:
Ich möchte gerne die 3 Wörter, die am Ende in der Variable $sCurrentLine gespeichert und ausgegeben werden jeweils in einer Variable haben. Also das erste Wort (Hallo) in Variable $Wort1, das zweite Wort (Hans) in Variable $Wort2 und das dritte Wort (Meier) in Variable $Wort3. Ich habe darauf hin ein wenig rum gegooglet und gesehen das es eine Möglichkeit gibt, in einer Zeile das x te Wort auszulesen aber ich weiß nicht wie ich es benutze.
Vielleicht weiß einer von euch auf Anhieb was ich falsch mache und/oder wie ich was ändern muss damit es Funktioniert.
Ich hoffe ich habe mich deutlich genug ausgedrückt das man mich versteht
Sonst bitte eben sagen was man noch Wissen muss dann werde ich es dazu Editieren.
Vielen Dank schonmal
Mit Freundlichen Grüßen
J3t-Forc3