PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TCL: gets stdin


Miraculix
18.05.2004, 09:48
Hallo,
OS: W2K
Script: TCL
Version: 8.3

Frage: wenn ich unter TCL die folgende Zeile eingebe: "gets stdin var1" kommt sofort als Rückgabewert -1. Er sollte aber auf eine Eingabe der Tastatur warten, und erst dann in die Variable var1 schreiben, wenn die Eingabe mit Return beendet wird. Was muss ich tun damit er die Eingabe von der Tastatur liest ?

vielen Dank im voraus

Gruss
Miraculix


thommey
19.07.2004, 15:26
Da ich "gets" gelesen habe, nehme is an du willst das ganze Zeilenweise auslesen, da würde ich folgende Methode benutzen:

proc gotinput {} {
# Habe was auszulesen in stdin
if {[gets stdin request] < 0} {
# programm wurde beendet (strg+c o.ä.)
catch {exit 0}
}
# Die daten sind jetzt in $request gespeichert
# Das ganze kommt Zeilenweise an
return 0
}
fconfigure stdin -buffering line
fileevent stdin readable gotinput