Zeilen einlesen,schreiben,enter

  • hey leute ich beschäftige mich das erste mal mit autoit und brauch da mal eure hilfe und zwar bekomme ich folgendes nicht hin.

    Ich hätte gern das mein programm per knopfdruck eine .txt einliest... und anfängt die erste zeile genau zu schreiben (dort wo man gerade mit den cursor ist und einfach anfängt die zeile einzutippen und jedesmal enter zu drücken nach jeder zeile und das solange macht bis es keine zeilen mehr in der .txt gibt)

    so siehts daweil aus....

    im gleichen ordner habe ich die datei Tiere.txt in der steht folgende:
    Affe
    Elefant
    Zebra

    Und mein Script schreibt einfach alles in einer wurscht... wie mach ich das nun das er schreibt:
    Affe "ENTER DRÜCKT"
    Elefant "ENTER DRÜCKT"
    Zebra "ENTER DRÜCKT"
    (solange bis es keine Tiere mehr gibt)

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

    Global $Paused
    HotKeySet("!p", "Pause")
    HotKeySet("!s", "Start")
    HotKeySet("!a", "Abort")

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

    ;;;; Body of program would go here ;;;;
    While 1
    Sleep(100)
    WEnd
    ;;;;;;;;

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

    Func Pause()
    $Paused = NOT $Paused
    While $Paused
    sleep(100)
    ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    EndFunc

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

    Func Abort()
    Exit 0
    EndFunc

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

    Func Start()

    $file = FileOpen("Tiere.txt", 0)

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

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    ; Read in lines of text until the EOF is reached
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    Send ($line)
    Wend

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

    FileClose($file)

    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]
  • hm ja nur wohin mit den enter? ich dachte mir das so:

    Func Start()

    $file = FileOpen("Tiere.txt", 0)

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

    ; Read in lines of text until the EOF is reached
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    Send ($line) Send("{enter}") <--- enter?
    Wend

    FileClose($file)

    EndFunc

    nur bekomm ich da nen schönen error anstatt das er enter drückt^^

  • ha es funktioniert :D

    nur gabs noch ein problem vielleicht kannst du mir den grund sagen... hab das script geladen... sollte ursprünglich starten wenn ich ALT+s drücke

    hab ne neue .txt geöffnet und wollte das er die zeilen so reinschreibt wie in der ursprünglichen... gab aber immer ein murks und er machte kein enter usw... dann hab ich statt Alt+s zum starten shift+s genommen und es funkt... kann es sein da alt eine windoof taste ist.. deswegen einen murks gegeben hat?

    und hab noch ein problemchen.. hätte gern ne messagebox mit mehreren zeilen wenn ich mein script starte finde in der hilfe keine hilfe ^^... also am anfang des scripts:

    MsgBox ( 0, "Tiere", "Affe Elefant Cebra" )

    Wie ist es nun möglich das er in der messagebox die tiere untereinander schreibt und nicht in einer zeile?
    Wenn ich das so mach:
    MsgBox ( 0, "Tiere", "Affe
    Elefant
    Cebra" )

    kommt ein error :D