Text aus Konsole auslesen

  • Hi,

    ich schreibe gerad ein Konsolenprogramm und hab nun das Problem, das ich Eingaben auslesen will aber keine Ahnung habe wie. Sufu und Hilfe habe auch ncihst gebracht. Den bit ConsloeREad gehts irgendwie net.

    Hier mal ein Code schnippsel:

    Spoiler anzeigen
    [autoit]

    ConsoleWrite("[" & @HOUR & ":" & @MIN & ":" & @SEC & "] Configuring " & $title & "..." & @CRLF & @CRLF & "Teamnumber: ")

    [/autoit]

    Jetzt will ich das, was dannach kommt auslesen.

    Danke schon mal für die Hilfe.

  • Ja das hab ich schon Versucht. Geht aber nicht.

    Spoiler anzeigen
    [autoit]

    $teamnumber = ConsoleRead()

    [/autoit]

    Hab das ganze als Console kompieliert. Liegt es evtl. daran?

    wenn ich allerdigns ne cmd mit dem Inhalt starte gehts:

    Spoiler anzeigen
    [autoit]

    echo Hallo! | [email='Folding@Home-Stats.exe'][/email]

    [/autoit]

    Ich möchte aber in der Konsole was eingeben gehts das auch?

  • Hier das Beispiel aus der Hifle!

    Spoiler anzeigen
    [autoit]

    ; Kompiliere dieses Skript zu "ConsoleRead.exe".
    ; Öffne ein Konsolenfenster und wechsle in das Verzeichnis, in dem ConsoleRead.exe ist.
    ; Tippe folgendes in die Befehlszeile:
    ; echo Hallo! | ConsoleRead.exe
    ;
    ; Wenn obige Zeile in einem Konsolenfenster aufgerufen wird, gibt der echo Befehl den Text
    ; "Hallo!" aus. Anstatt diesen anzuzeigen, bewirkt das "|" in dem Befehl, das der Text
    ; an den STDIN Stream des ConsoleRead.exe Prozesses weitergeleitet wird.
    If Not @Compiled Then
    MsgBox (0, "", "Dieses Skript muss kompiliert sein, um seine Funktionalität zu demonstrieren.")
    Exit -1
    EndIf

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

    Local $data
    While True
    $data &= ConsoleRead ( )
    If @error Then ExitLoop
    Sleep (25)
    WEnd
    MsgBox (0, "", "Erhalten: " & @CRLF & @CRLF & $data)

    [/autoit]

    Das geht glaube ich nur mit der CMD, mit ConsoleWrite will es bei mir auch nicht gehen

    mfg. Jam00

  • ConsoleWrite geht nur wenn es uach als Console kompilierst.

    Die hilfe hab ich mir schon angeschaut. Danke trotzdem. Weiß sonst wer rat?

  • schau Dir mal den Befehl StdOutRead in der Hilfe an ...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Über das bin ich auch schon gestolpert allerdings weiß ich nicht wie ich an die Prozess-ID eines Child-Prozesses kommen soll.

    Außerdem seh ich dann in der Konsole nicht was ich geschrieben habe denk ich mir mal oder?

    Gruß

  • Moin,

    probiere mal das hier ...

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    ; Beispiel 1:
    ; Dieses Beispiel liest jedes Zeichen einzeln ein.

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

    $input = ""
    ConsoleWrite (@CRLF & "Geben Sie einen Text ein und beenden Sie die Eingabe mit ENTER: ")

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

    $file = FileOpen ("con", 4)

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

    While True

    $chr = FileRead ($file, 1)

    If $chr = @LF Then _
    ExitLoop

    $input &= BinaryToString ($chr)
    WEnd

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

    FileClose ($file)

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

    ConsoleWrite (@CRLF & "Ihre Eingabe war: " & $input & @CRLF)

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

    ; To read lines instead of single characters use this code:

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

    ; Beispiel 2:
    ; Dieses Beispiel liest Zeichen einer bestimmten Länge ein.

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

    $maxchr = 123
    $input = ""
    ConsoleWrite (@CRLF & "Geben Sie einen Text ein und beenden Sie die Eingabe mit ENTER: ")

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

    $file = FileOpen ("con", 4)
    $line = BinaryToString (FileRead ($file, $maxchr))
    FileClose ($file)

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

    ConsoleWrite (@CRLF & "Ihre Eingabe war: " & $line & @CRLF)
    ;

    [/autoit]


    Quelle: Console Input


    Gruß
    Greenhorn


  • nachdem Dein Code-Schnipsel nicht viel her gibt, kann ich nur sagen:
    Versuch Dich an dem Beispiel in der Hilde zu StdOutRead.

    Ansonsten bitte etwas mehr Code posten ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_Change2CUI=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ; Beispiel 1: ; Dieses Beispiel liest jedes Zeichen einzeln ein. $input = "" ConsoleWrite (@CRLF & "Geben Sie einen Text ein und beenden Sie die Eingabe mit ENTER: ") $file = FileOpen ("con", 4) While True $chr = FileRead ($file, 1) If $chr = @LF Then _ ExitLoop $input &= BinaryToString ($chr) WEnd FileClose ($file) ConsoleWrite (@CRLF & "Ihre Eingabe war: " & $input & @CRLF) ; To read lines instead of single characters use this code: ; Beispiel 2: ; Dieses Beispiel liest Zeichen einer bestimmten Länge ein. $maxchr = 123 $input = "" ConsoleWrite (@CRLF & "Geben Sie einen Text ein und beenden Sie die Eingabe mit ENTER: ") $file = FileOpen ("con", 4) $line = BinaryToString (FileRead ($file, $maxchr)) FileClose ($file) ConsoleWrite (@CRLF & "Ihre Eingabe war: " & $line & @CRLF)

    das sieht gut aus. Ic schu mal ob das funktioniert. Wenn nciht melde ich mich. Danke