Aus textdokument senden

  • Wie die Überschrift schon sagt möchste ich gerne aus dem textdokument wörter senden.

    also das zb. in der ersten zeile" hallo "steht , in der zweiten "du" , in der dritten zeile" da " steht.
    und dan von oben nach unten die wörter sendet.


    das müsst doch irgendwie gehn oder?

  • Also groß und bündig

    Spoiler anzeigen
    [autoit]

    Global $AnzZeilen, $Woerter[5][3] ;~ Immer eins mehr wie im Textdokument ^^

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("^1", "_send")

    [/autoit] [autoit][/autoit] [autoit]

    $File=FileOpen("text.txt", 0) ;~ Öffnet das Textdokument

    [/autoit] [autoit][/autoit] [autoit]

    $AnzZeilen=FileReadLine($file) ;~ Im Textdokument ne Zahl am Anfang des Dokuments hinterlegen damit das Script weiss wieviel drinne steht

    [/autoit] [autoit][/autoit] [autoit]

    FileReadLine($file);~ Setzt das FileReadLine auf 0 zurück

    [/autoit] [autoit][/autoit] [autoit]

    For $i=1 to 4 ;~ Hier deine Zeilen reintippen wieviel das Textdokument hat

    [/autoit] [autoit][/autoit] [autoit]

    For $z=1 to 2 ;~ Hier rein wieviel abstand dazwischen ist

    [/autoit] [autoit][/autoit] [autoit]

    $Woerter[$i][$z]=FileReadLine($File) ;~ Liest die Zeilen nochmal ein

    [/autoit] [autoit][/autoit] [autoit]

    Next

    [/autoit] [autoit][/autoit] [autoit]

    Next
    FileClose($file)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _send()
    For $i=1 to 4
    Send($Woerter[$i][1] & "{ENTER}") ;~ Sendet immmer die 1+1 Zeile ab
    Sleep(100)
    Next
    EndFunc

    [/autoit]

    so ist es etwas umfangreicher aber ich hoffe die erklärung reicht, achja schön mit STRG+1 starten ^^

    in der Textdatei steht dann das drinne (Beispiel von dir)

    Code
    3 ;~ zwischen den Sternchen stehen steht Hallo*du*da sprich wenn noch eins dazu kommt muss du hier 4 hinschreiben
    Wort*
    Hallo
    *
    du
    *
    da
    *

    Achja wenn du da weiter dann reinschreibst (Kann sogar nen komplette Zeile sein) musst du dadrauf achten das du immer

    Satz
    *
    Satz
    *

    schreibst ^^

    mfg.
    Tak|Jochen

  • Hallo,
    wieso dieses seltsame Dateiformat?
    Die Anzahl der Zeilen bzw Einträge muss man nicht in die erste Zeile schreiben, gerade im Gegenteil, wenn das "von Hand" gemacht wird, liegt die Fehlerquote bei 100%. Die Anzahl der Zeilen in der Datei kann man mit mehreren Varianten bestimmen.
    Ein * als Zeilentrenner ist überflüssig, da am Ende jeder Zeile sowieso ein @CRLF steht.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $datei = "test_3456.txt"
    $inhalt=""

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    for $i=1 to random(22,33,1) ;zufälligen Dateiinhalt erstellen
    $inhalt&="Das hier ist Zeile "&$i&@CRLF
    Next
    Msgbox (0,"Dateiinhalt:",$inhalt) ;anzeigen
    filedelete($datei)
    filewrite($datei,$inhalt)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Dim $zeilen
    _FileReadToArray($datei, $zeilen) ;Dateiinhalt zeilenweise in ein Array schreiben
    If @error Then ;wenn ein Fehler aufgetreten ist
    MsgBox(0, "Fehler beim Öffnen der Datei:", $datei)
    Else ;ansonsten
    MsgBox(0, "Anzahl Zeilen in " & $datei, UBound($zeilen) - 1)
    MsgBox(0, "Anzahl Zeilen in " & $datei, $zeilen[0])
    _ArrayDisplay($zeilen)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;oder
    $inhalt = FileRead($datei)

    [/autoit] [autoit][/autoit] [autoit]

    $zeilen = StringSplit($inhalt, @CRLF, 3) ;nullbasierend
    MsgBox(0, "Anzahl Zeilen in " & $datei, UBound($zeilen) - 1)
    _ArrayDisplay($zeilen)

    [/autoit] [autoit][/autoit] [autoit]

    ;oder
    $zeilen = StringSplit($inhalt, @CRLF, 1) ;anzahl der Zeilen im Index 0
    MsgBox(0, "Anzahl Zeilen in " & $datei, $zeilen[0] - 1)
    _ArrayDisplay($zeilen)

    [/autoit] [autoit][/autoit] [autoit]

    filedelete($datei)

    [/autoit]
  • So wie ich das geschrieben habe, war auch nur nen kleiner Teil aus nem Guide den ich grade schreiben (Ja fürn Game und nein kein Bot).

    Jeder hat es so anderst wie man es schreibt und so finde ich es besser du magst deine Form, ich habe meistens die * im Textdokument um das zu trennen weil da steht meistens nicht nur 1 Zeile zwischen den * sondern so ca. 5-12 Zeilen, die Sternchen kann man auch ersetzen xD die werden eh übersprungen ^^


    mfg.
    Tak|Jochen