Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
gülcan

Anmeldungsdatum: 10.04.2005 Beiträge: 1 Wohnort: :wall:
|
Verfasst am: 10.04.2005, 11:06 Titel: INKEY$ |
|
|
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 |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 10.04.2005, 11:36 Titel: |
|
|
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 |
|
 |
Heizi

Anmeldungsdatum: 19.01.2005 Beiträge: 309
|
Verfasst am: 11.04.2005, 11:35 Titel: |
|
|
Hi !
Ich glaub das geht so:
IF ASC(INKEY$) = 48 THEN PRINT "Hallo" |
|
Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 11.04.2005, 13:42 Titel: |
|
|
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 |
|
 |
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 11.04.2005, 16:14 Titel: |
|
|
oder auch:
Code: | IF INKEY$=CHR$(78) THEN |
|
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 11.04.2005, 22:12 Titel: |
|
|
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 |
|
 |
ah8982

Anmeldungsdatum: 11.09.2004 Beiträge: 62 Wohnort: Ba-Wü
|
Verfasst am: 12.04.2005, 08:44 Titel: |
|
|
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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 12.04.2005, 09:21 Titel: |
|
|
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 |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 12.04.2005, 09:35 Titel: |
|
|
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 |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 12.04.2005, 10:33 Titel: |
|
|
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 |
|
 |
|