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:

INKEY$

 
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
gülcan



Anmeldungsdatum: 10.04.2005
Beiträge: 1
Wohnort: :wall:

BeitragVerfasst am: 10.04.2005, 11:06    Titel: INKEY$ Antworten mit Zitat

Hilfe wie funktioniert INKEY$ im Zusammenhang mit IF ???

Wenn ich

IF INKEY$ = 48 THEN PRINT "Hallo"

(INKEY$ = 48 für 8 auf dem Nummernblock bzw. oben)

eingebe, mag QBasic das nicht, weil eine $-Syntax nicht mit Zahlen funktioniert!!!

Helft mir!

Editiert durch Moderator: Die Menge Smilies hättest du dir sparen können... [Sebastian]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name Yahoo Messenger MSN Messenger
Skilltronic



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

BeitragVerfasst am: 10.04.2005, 11:36    Titel: Antworten mit Zitat

Hallo gülcan - willkommen im QB-Forum!

Zu deiner Frage. Die ist schon eine Million mal gestellt und beantwortet worden. Das Forum hat eine Suche mit der man nachsehehen kann, ob zu einem Thema schon was geschrieben wurde. Auf www.qbasic.de gibt es Tutorials ohne Ende und die Monster-FAQ, in der auch deine Frage ausführlich behandelt wird.

Aber sicher finden sich auch beim eine 100001. Mal wieder genug Leute, die dir das ausführlich beantworten werden. Wart's ab...

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



Anmeldungsdatum: 19.01.2005
Beiträge: 309

BeitragVerfasst am: 11.04.2005, 11:35    Titel: Antworten mit Zitat

Hi !

Ich glaub das geht so:
IF ASC(INKEY$) = 48 THEN PRINT "Hallo"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 11.04.2005, 13:42    Titel: Antworten mit Zitat

Wie das $ bei INKEY$ schon andeutet, handelt es sich um einen String, der normalerweise auch nur mit Strings verglichen werden sollte.
So ist das erlaubt:

IF INKEY$ = "e" THEN END

oder wie eben gezeigt:

if ASC(INKEY$) = 78 THEN BEEP

(Wobei man auch hier eleganter programmieren könnte, aber das führt jetzt zu weit)
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
code



Anmeldungsdatum: 19.01.2005
Beiträge: 154

BeitragVerfasst am: 11.04.2005, 16:14    Titel: Antworten mit Zitat

oder auch:

Code:
IF INKEY$=CHR$(78) THEN
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



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

BeitragVerfasst am: 11.04.2005, 22:12    Titel: Antworten mit Zitat

Hallo

Heizi & SpionAtom hat Folgendes geschrieben:
IF ASC(INKEY$) = 48 THEN PRINT "Hallo"


Das ist falsch. Wenn keine Taste gedrückt wurde, soll das Programm den ASCII von nichts ermitteln und den gibt es nicht -> unzulässiger Funktionsaufruf.

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



Anmeldungsdatum: 11.09.2004
Beiträge: 62
Wohnort: Ba-Wü

BeitragVerfasst am: 12.04.2005, 08:44    Titel: Antworten mit Zitat

Hallo,

wie wärs mit so:

Code:
CLS
PRINT"<mit ESC beenden>"

DO
   Taste$ = RTRIM$(LTRIM$(UCASE$(INKEY$)))
   SELECT CASE Taste$
      CASE IS = "E"
         BEEP
   END SELECT
LOOP UNTIL Taste$ = CHR$(27)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 12.04.2005, 09:21    Titel: Antworten mit Zitat

Skilltronic hat Folgendes geschrieben:
Hallo

Heizi & SpionAtom hat Folgendes geschrieben:
IF ASC(INKEY$) = 48 THEN PRINT "Hallo"


Das ist falsch. Wenn keine Taste gedrückt wurde, soll das Programm den ASCII von nichts ermitteln und den gibt es nicht -> unzulässiger Funktionsaufruf.

Gruss
Skilltronic


Da muss ich ihm recht geben. Aber das sollte ja "nur" ein Beispiel sein, das den Unterschied zwischen String- und Zahlen-Vergleich verdeutlicht.
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 12.04.2005, 09:35    Titel: Antworten mit Zitat

SpionAtom hat Folgendes geschrieben:
Skilltronic hat Folgendes geschrieben:
Hallo

Heizi & SpionAtom hat Folgendes geschrieben:
IF ASC(INKEY$) = 48 THEN PRINT "Hallo"


Das ist falsch. Wenn keine Taste gedrückt wurde, soll das Programm den ASCII von nichts ermitteln und den gibt es nicht -> unzulässiger Funktionsaufruf.

Gruss
Skilltronic


Da muss ich ihm recht geben. Aber das sollte ja "nur" ein Beispiel sein, das den Unterschied zwischen String- und Zahlen-Vergleich verdeutlicht.


Code:

IF ASC(INKEY$+CHR$(0)) = 48 THEN PRINT "Hallo"


so gehts, übrigens bei einigen tasten (z.b. Cursor)
enthält der INKEY$ String 2 Zeichen.

einfach mal folgendes testen.

Code:

DO
PRINT LEN(INKEY$)
LOOP

_________________
'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 12.04.2005, 10:33    Titel: Antworten mit Zitat

Oder einfach mal bei Nibbles reinschauen. Die Nibblestastatur-Abfrage war für mich viele Jahre Standard. (Und ist es teilweise heute noch)
_________________
Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
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