DMUG-Archiv 2005

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: In laufende Scleife interaktiv eingreifen

Hm,

also die Frage war, wir erinnern uns:

"Gibt es einen Befehl, der eine Tastaturabfrage durchführt und das Programm
dann sofort in die gewünschte "Richtung" lenkt?"

welche welcher Befehl (in welcher Sprache) war wohl gemeint ??
War es die Frage

"Gibt es in '.NET' eine Tastaturabfrage  ...?"

wohl eher nicht. Natürlich kann man auch ein MathLink-Programm schreiben das alle Tastatureingaben an Mathematica schickt und in der Mathematica Schleife fragt man hin und wieder mal ob in dem Link was steht, aber es war auch nicht die Frage

"Gibt es in C/C++ eine Tastaturabfrage  ...?"

Die C/C++ Version hätte auch den Vorteil, auf den meisten Unix-Kisten zu funktionieren, die ein .NET ja nicht besitzen und zwar dynamische Bibliotheken kennen aber keine DLLs -- schon gar keine kernel32.dll.

Aber machen wir uns nichts vor -- kann jemand der
ernsthaft:

"In erstelle ein kleines Programm, das mir durch eine (unendliche) Schleife
eine Folge von Grafiken ausgibt."

programmiert ein .NET Programm aufrufen ?? oder gar ein MathLink/C Programm
schreiben ?? Wohl eher nicht.

Das gleichzeitige berechnen der Schleife und das Abfragen der Tastatur erfordert nämlich eine parallele Ausführung zweier Aufgaben und das kann Mathematica eben nicht, die meisten Betriebsysteme müssen das können und deshalb leitest Du die Aufgabe auch an selbiges weiter.

Gruß
 Jens

----- Original Message ----- From: "Nowak Robert" <robert.nowak@XXXXXXX.at> To: "Jens-Peer Kuska" <kuska@XXXXXXX.de>; "Wieser Johann" <aon.912862196@XXXXXXX.at>; <demug@XXXXXXX.ch>
Sent: Tuesday, May 24, 2005 9:59 AM
Subject: RE: In laufende Scleife interaktiv eingreifen


Hi Jens,

muss dir leider schon wieder widersprechen.
mit hilfe der .NET/Link 3.5.0 schnittstelle ist es möglich unter mma windows dll's zu rufen.

im mma help wird das beispielhaft für die windows api funktion GetTickCount gezeigt.

getTickCount = DefineDLLFunction["GetTickCount", "kernel32.dll", "int", {}]

in windows gibt es auch eine api funktion zur abfrage des tastatutscancodes damit kann man abfragen ob z.b. überhaupt eine tastet gedrückt ist und wenn eine gedrückt ist dann welche, ohne das man ein zeichen von der tatstatur wirklich einlesen muss.

wie diese windows api funktion jetzt genau heist muss man sich im windows api noch schlau machen. man braucht dafür jedenfalls keinerlei c programmierung oder ähnliches.

l.g. robert

-----Original Message-----
From: Jens-Peer Kuska [mailto:kuska@XXXXXXX.de]
Sent: Monday, May 23, 2005 10:09 PM
To: Wieser Johann; demug@XXXXXXX.ch
Subject: Re: In laufende Scleife interaktiv eingreifen


Hallo,

nein, weil entweder Mathematica ließt aus einer
Datenquelle
oder es wartet darauf, das es etwas lesen kann.
Input[] wird in einer unendliche Schleife wohl
etwas nervig
sein oder wie ist
i = 0;
While[True,
 Print[i++];
 c = Input["continue ?"];
 If[c === no, Break[]]
]

Gruß

 Jens

----- Original Message ----- From: "Wieser Johann" <aon.912862196@XXXXXXX.at>
To: <demug@XXXXXXX.ch>
Sent: Monday, May 23, 2005 8:45 PM
Subject: In laufende Scleife interaktiv eingreifen


Guten Tag!

Mein Problem!
In erstelle ein kleines Programm, das mir durch
eine (unendliche) Schleife
eine Folge von Grafiken ausgibt. Ich möchte es
aber während der Ausgabe
steuern können, indem eine Tastaturabfrage
eingebaut werden soll, die, je
nach Tastenabfrage entsprechendes bewirken soll.
(z.B auch Abbruch der
Schleife. Mit Alt+. ist das nur bedingt möglich.
Manchmal wird zwar
ausgestiegen, bei der nächsten Ausführung bleibt
dann das Programm  hängen
oder andere Probleme treten auf).
Kurz gefragt:
Gibt es einen Befehl, der eine Tastaturabfrage
durchführt und das Programm
dann sofort in die gewünschte "Richtung" lenkt?










Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html