Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Tastaturpuffer auslesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
FatalError



Anmeldungsdatum: 22.11.2004
Beiträge: 21
Wohnort: Berga/Elster

BeitragVerfasst am: 06.11.2005, 17:43    Titel: Tastaturpuffer auslesen Antworten mit Zitat

Nabend
Hab ein Problem das hier schon öfters besprochen wurde und zwar lese ich Tastatureingaben mit INKEY$ ein und wenn ich eine taste gedrückt halte, so kommt nach gewisser Zeit das berühmte piepsen aus dem PC...
Das Problem bei meinem Programm ist, dass es für die Darstellung eines Zeichens ziemlich lange (im vergleich zur normalen ausgabe) braucht.
Nun würde es mir sehr helfen, wenn ich im Programm die Länge des Tastaturpuffers ermitteln und ab einem bestimmten Schwellenwert, einige Operationen abbrechen könnte um die Darstellung zu beschleunigen.

Ok, das ganze gefusel soll bedeuten: Ich muss wissen, wie ich herausbekomme wieviele Zeichen im Tastaturpuffer hängen. grinsen

MFG
FatalError
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 06.11.2005, 18:05    Titel: Antworten mit Zitat

Hallo

Würde es nicht schon reichen, einfach zwischendurch den Tastaturpuffer auszulesen, also statt eine Funktion zu sperren einfach ein

variableohnesinn = INKEY$

einzubauen?

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
FatalError



Anmeldungsdatum: 22.11.2004
Beiträge: 21
Wohnort: Berga/Elster

BeitragVerfasst am: 06.11.2005, 18:16    Titel: Antworten mit Zitat

nein würde es nicht. weil die Zeichen nicht verloren gehen dürfen...
ich sag mal grob was ich vorhab: Textverarbeitungsprogramm
wenn da jemand die Backspace Taste drückt um einen längeren Text zu löschen, will ich die aktualisierung der Anzeige (das was so lang dauert) nur noch bei jedem 2. bis 3. zeichen durchführen um die bearbeitung zu beschleunigen und das piepen zu unterbinden.
Oder halt wenn jemand schneller schreibt als der Schall lachen

Nur dazu müsst ich wissen, wann der Puffer halt seine Grenzen erreicht hat =/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
pinkpanther



Anmeldungsdatum: 28.05.2005
Beiträge: 79
Wohnort: Wien

BeitragVerfasst am: 06.11.2005, 18:19    Titel: Antworten mit Zitat

@FatalError

Code:
DEFINT A-Z

DECLARE FUNCTION FuellstandTastaturPuffer% ()

CLS
LOCATE 3, 1
PRINT "FUELLSTAND TASTATURPUFFER ERMITTELN"

'Tastaturpuffer leeren
WHILE LEN(INKEY$)
WEND

LOCATE 5, 1
PRINT "Druecke ein paar beliebige Tasten..."
PRINT "(Abbruch mit Escape-Taste)"

COLOR 15
LOCATE 8, 1
PRINT "Der Tastaturpuffer enthaelt derzeit ";
DO
  Zeichen = FuellstandTastaturPuffer%
  LOCATE , 36
  PRINT Zeichen; "Zeichen";
  IF Zeichen = 15 THEN
    PRINT " und ist damit ";
    COLOR 23
    PRINT "VOLL!";
    COLOR 15
  END IF
' Eingabeschleife verlassen, wenn die Escape-Taste
' gedrueckt wurde
' (Escape-Taste = Scancode 1;
'  die Abfrage mit INKEY$ wuerde den Tastaturpuffer
'  leeren)
LOOP UNTIL INP(&H60) = 1

COLOR 7

END

FUNCTION FuellstandTastaturPuffer%
  DEF SEG = 0
    PufferKopf& = PEEK(&H41A) + PEEK(&H41B) * 256&
    PufferEnde& = PEEK(&H41C) + PEEK(&H41D) * 256&
    Zeichen = (PufferEnde& - PufferKopf&) \ 2
    ' Kopf und Ende des Zirkularpuffers rotieren,
    ' Ergebnis kann daher negativ sein und muss
    ' ggf. korrigiert werden
    IF Zeichen < 0 THEN Zeichen = Zeichen + 16
    FuellstandTastaturPuffer = Zeichen
  DEF SEG
END FUNCTION
[/code]
_________________
lG
pinkpanther lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
FatalError



Anmeldungsdatum: 22.11.2004
Beiträge: 21
Wohnort: Berga/Elster

BeitragVerfasst am: 06.11.2005, 19:42    Titel: Antworten mit Zitat

Danke.. funktioniert prima lächeln

MFG
FatalError
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz