Re: [Python-de] 2004q3/005539.html
![](https://secure.gravatar.com/avatar/8fd030b703fa8602401ff6525fa2f107.jpg?s=120&d=mm&r=g)
Hallo Gerhard, wenn ich das ausprobiere gibt es die selbe Fehlermeldung: "stty: standard input: Invalid argument" stdin wird nicht mehr als tty erkannt, obwohl er weiterhin Daten von der Tastatur annimmt. Deshalb ja die Abfrage " if os.isatty(fd):" am Anfang der Eingaberoutine, da ansonsten die termios-Funktionen die obige Fehlermeldung erzeugen. Das bringt mich zurück zu meinem ersten Hilferuf: entweder stdin so "zurückmanipulieren", daß er wieder als tty erkannt wird und dann mit der ursprünglichen Methode abzufragen oder akzeptieren, daß stdin als File behandelt wird und diese Parameter so neu setzen, daß die Tastendrücke nicht mehr in mehreren Blöcken gelesen werden müssen. Gruß Hartmut Gerhard Quell schrieb:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hallo Hartmut,
~ wenn stdin geändert wurde, dann muß auch stty geändert worden sein. Vergleiche doch einfach einen stty -a von der Kommandozeile mit einen os.system("stty -a > /tmp/stty") den Du in Dein Programm einbaust. Dann kannst Du schnell die Differenzen entdecken.
Gruß Gerhard - --------------- Hartmut Fröls wrote: | Hallo Gerhard, | | vielen Dank für deine Bemühungen. | Anscheinend manipuliert die vorgeschaltete Warenwirtschaft die stdin so, | daß ich immer nur max. 3 Byte | vom read zurückbekomme, dummerweise ohne erkennbares System in 1-, 2- | oder 3-Byte-Paketen. | Ich habe lange gesucht aber keine Möglichkeit gefunden, eventuell | Eigenschaften der stdin zu ändern | (analog der flags bei os.open). Ich habe mir deshalb mit folgenden | Zeilen geholfen: | | ... | ch1 = os.read(fd,2) | ch = ch1 | if len(ch1) == 2 or ch1 == "\033": | while 1: | if ch not in key_func + key_curs + key_curs1 and len(ch) < 5: | ch1 = os.read(fd,2) | ch = ch + ch1 | else: | break | | ... | | Ist vielleicht nicht elegant, funktioniert aber solange keiner ESC | drückt, dafür ist noch | der "Sicherheits-Abbruch" len(ch) <= 5. | Für elegantere Lösungen direkt an der stdin wäre ich aber immer noch | dankbar. | | Gruß | | Hartmut - -- - ------------------------------------------------------ skequell ------ ~ Gerhard Quell Software & Knowledge Engineering ~ Schützenweg 3 eMail: gquell@skequell.de Fon: 0731-26400651 ~ 89275 Elchingen web : http://www.skequell.de Fax: 0731-26400652 - --------------- pgp: 473EC53C - http://www.keyserver.net/en--------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFBIzGXvHbZD0c+xTwRAhcAAKCSWi4uofr2iLpQTrjnFW7qpRAKqQCgp61M Ya5mlrzVgko/nFkYDV1SxEU= =JTg4 -----END PGP SIGNATURE-----
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (1)
-
Hartmut Fröls