Console - Eingabe

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

ToeB

Betreff: Console - Eingabe

BeitragDi, Nov 22, 2011 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo !

Ich habe mal ne Frage. Ich Programmiere zur Zeit eine Anwedung, die nur in der Windows bzw. Linux Console ausgeführt wird. Mit Print kann man ja eine Ausgabe machen, das Klappt auch alles. Aber ich möchte gern mit Input eine Eingabe machen, sodass aber das Programm im Hintergrund weiterläuft (Ich weiß, eigene Eingaberoutine schreiben, aber wie ?).

Ich hoffe ihr könnt mir helfen !


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ZaP

BeitragDi, Nov 22, 2011 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnte mit Threads und ReadStdin funktionieren, sollte nicht allzu schwierig sein.
Starfare: Worklog, Website (download)

BladeRunner

Moderator

BeitragDi, Nov 22, 2011 12:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Threads dürften dafür nicht mal nötig sein. Ein auslesen des Eingabebuffers reicht ja schon vollkommen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ToeB

BeitragDi, Nov 22, 2011 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wenn ich ReadStdIn benutze hält er auch das Programm an. Kann ich das umgehen ohne direkt zu Threads greifen zu müssen ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

klin

BeitragDi, Nov 22, 2011 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte es auch mal versucht. Leider kahm ich damals ohne Threads nicht vorbei. Aber es gibt sicherlich auch noch andere Methoden. Schließlich sah ich es schon oft, dass man unten so einen Input-Balken hatte, während die Konsole sich ständig aktualisiert hatte. Du müsstest nur die Eingabe im Fenster abfangen und jedesmal die Konsole aktualisieren (Alles verschiebt sich nach oben, bis auf den Input-Balken).

Ist nur so ein Gedanke.

Klin

EDIT: Oder du machst ein eigenes Konsolen-Fenster mit Graphics/Canvas/oder was es sonst so gibt.

ToeB

BeitragDi, Nov 22, 2011 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist aber, das ich das Programm auf nem Linux Server ausführen möchte welcher nur aus einer Konsole besteht...

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Thunder

BeitragDi, Nov 22, 2011 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest es mit kbhit() und getche() probieren. Bei mir auf Windows 7 funktioniert es - aber, die Funktionen sind nicht ANSI-C-Standard (zumindest erstere nicht, bei getche weiß ich's nicht).

BlitzMax: [AUSKLAPPEN]
Framework brl.blitz
Import brl.standardio

Extern
Function kbhit:Int()
Function getche:Int()
EndExtern


Repeat
If kbhit() Then Print " = "+getche()
Forever


kbhit() liefert, ob eine Taste gedrückt wurde. Der Aufruf von getche() nachdem kbhit() 1 geliefert hat, gibt den ASCII-Wert zurück.


Edit: Propellator hat wahrscheinlich recht - ich hab es mit Linux probiert und es ging nicht.
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit
  • Zuletzt bearbeitet von Thunder am Di, Nov 22, 2011 22:23, insgesamt einmal bearbeitet

ToeB

BeitragDi, Nov 22, 2011 19:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah vielen dank ! Funktioniert Prima !

Allerdings muss ich es noch auf Linux testen.. Hoffe es geht ^^

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Propellator

BeitragDi, Nov 22, 2011 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
@Thunder: Dies wird nicht auf UNIX funktionieren.

Entweder du nimmst Threads (Ich habe gegooglet und dies scheint eine weit verbreitete Lösung zu sein) oder du wirfst einen Blick auf das hier: http://c-faq.com/osdep/cbreak.html

MfG
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

BtbN

BeitragDi, Nov 22, 2011 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Probier doch mal mit select auf die stdin los zu gehen.

ToeB

BeitragDi, Nov 22, 2011 22:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie meinst du das ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group