Prüfen ob Eingabe=Zahl ist/TextScrolling
Übersicht

Hex²Betreff: Prüfen ob Eingabe=Zahl ist/TextScrolling |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich schreibe grade eine Konsole und versuche schon seit gestern etwas zu regeln.
Der User kann z.B. "wireframe 1" eingeben. Ich überprüfe ob Zahl eine 1 oder 0 ist, denn etwas anderes soll eine Fehlermeldung erzeucgen. Das funktioniert auch, wenn er 3 eintippt kommt der Error. Wenn der User aber "wireframe hallo" eintippt, dann erkennt BB eine 0. Wie kann man denn prüfen ob die Eingabe eine Zahl ist oder nicht? Gibt es da ein Befehl den ich übersehen habe? Oder (warscheinlich) wieder nur eine umständliche und umfangreiche Funktion die man schreiben muß ![]() |
||
- Zuletzt bearbeitet von Hex² am Mi, Apr 20, 2005 22:42, insgesamt einmal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Relativ simpel:BlitzBasic: [AUSKLAPPEN] If Asc(eingabe$)>=48 And Asc(eingabe$)<=57 Then ist es eine zahl zwischen 0 und 9 ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi,
ich würde das mit ql:instr lösen: Code: [AUSKLAPPEN] if instr("0123456789",Zahl$) = 0 then RuntimeError "Keine Zahl!" |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nur wenn die Zahl zweistellig ist, geht es damit nur noch schlecht... | ||
Hex² |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, das hilft mir schon weiter, im Moment habe ich nur die Zahlen 0-1, wenn noch mehr dazukommen, könnte ich ja die Zeichen einzeln abfragen, ich denke mal das wird ja nicht so langsam sein, daß es auffällt. | ||
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie wärs mit:
Code: [AUSKLAPPEN] If zahl$ = Int(zahl$) Then ...
![]() |
||
Hex² |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
OJay hat Folgendes geschrieben:
Rofl, stimmt, darauf wär ich irgendwie nicht gekommen, obwohl es sooooo simpel und logisch ist, und jetzt wo ich es sehe ist es schon fast peinlich daß ich gefragt habe ![]() |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei deinem Problem ist es doch nicht wichtig, ob es sich um eine Zahl handelt:
Code: [AUSKLAPPEN] Select zahl$ case "1": ;....... case "2": ;....... default: Print "Fehler" End Select reicht doch vollkommen. ![]() Denn solange du nicht mit diesen Werten rechnest, ist es eigentlich auch Unsinn sich die Sache zu verkomplizieren. (Jetzt kommen bestimmt wieder einige und sagen Strings verbrauchen mehr Speicher...) |
||
DarkMike |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ne! end select brauchst nicht da default schon da is! | ||
2 dinge sind unendlich die menschliche Dummheit und das Universum obwohl beim Universum bin ich mir nicht ganz sicher. (Albert Einstein) |
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie wäre es einfach nur die keycodes bzufragen welche gedrückt wurden,das wäre meines erchtens am einfachsten.
meine Meinung FrEeMaN |
||
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28 |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
DarkMike hat Folgendes geschrieben: ne! end select brauchst nicht da default schon da is! Wie meinen bitte? ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Hex² |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich kann mir nicht helfen, aber "zahl$ = Int(zahl$)" finde ich irgendwie noch am besten.. kurz und schnell.. hab ich da jetzt einen Vorteil noch mit Select Case abzufragen? (außer ich will das der User nur bestimmte Zahlen eingibt)
Eigendlich nicht das Thema, aber ich habe nochmal eine andere Frage. In meiner Konsole kann man den Text scrollen, das habe ich im Moment mit Dims gelöst. Kann man das auch mit Types lösen? Ich weiß nicht ob und wie man dann abfragen kann in welcher Zeile man sich befindet, weil man bei Types doch keine ID hat so wie bei einem Array (zeile$(1) z.B.). Dims finde ich irgendwie so unfexiebel, weil ich halt immer voher bestimmen muß, wieviele Zeilen es maximal geben darf... |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest mit Handle die id zwischenspeichern, dann mit Object zu dieser id wecheln und via After und Before scrollen. Arrays sind zwar einfacher zu handhaben, haben aber wie Du schon sagtest den Nachteil der festgelegten Größe. | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Hex² |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hubsi hat Folgendes geschrieben: Du könntest mit Handle die id zwischenspeichern, dann mit Object zu dieser id wecheln und via After und Before scrollen. Arrays sind zwar einfacher zu handhaben, haben aber wie Du schon sagtest den Nachteil der festgelegten Größe.
Das hab ich befürchtet, ich glaub ich muß mir das Arraytut nomma durchlesen, bin nämlich diesem Handleids immer aus dem Weg gegangen ![]() Danke erstmal.. wenn ichs gebacken bekomme das es läuft, werde ich Euch daran teilhaben lassen ![]() |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das muss ich noch loswerden:
Das mit dem Select ist natürlich nur sinnvoll, wenn man die eingabe auf relativ viele Dinge hin vergleichen will. Bei einer schlichten 1/0 ja/nein abfrage, genügt natürlich schon ein IF..THEN..ELSE. Und @freeman Keycodes abfragen bei einer Konsole?!? ![]() Neeeeeeeee ![]() |
||
![]() |
Triton |
![]() Antworten mit Zitat ![]() |
---|---|---|
Passt besser in Anfänger-Forum. Auf keinen Fall aber in 2D.
![]() |
||
Coding: silizium-net.de | Portfolio: Triton.ch.vu |
Hex² |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also irgendwie rall ich das mit dem bewegen im Array nicht so ganz.. naja jedenfalls nicht so wie ich es benötige:
BlitzBasic: [AUSKLAPPEN]
So, nun weiß ich das ich mich in Zeile 30 befinde und das "aktuelle Zeile" die ID des letzten Types beinhaltet. Um jetzt 10 Zeilen anzeigen zu lassen, muß ich sicherlich mit before die Zeile anzeigen und dann die aktuelle_zeile auf das neue Typehandle setzen, aber ich hab schon ein paar Varianten versucht. Egal wie ich es drehe, ich sehe immer Zeile 1 - 20 statt 20-30. Hat noch jemand ein Tip für mich ? *hundeblick mach* *fg* |
||
DarkMike |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hubsi hat Folgendes geschrieben: DarkMike hat Folgendes geschrieben:
ne! end select brauchst nicht da default schon da is! Wie meinen bitte? ![]() ??? wie meinen du bitte ??? |
||
2 dinge sind unendlich die menschliche Dummheit und das Universum obwohl beim Universum bin ich mir nicht ganz sicher. (Albert Einstein) |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Select muss immer mit End Select abgeschlossen werden, da sonst der Compiler natürlich nicht weiß was zum Case bzw. Default alles dazugehört. Oder ich hab Dich völlig falsch verstanden ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
DarkMike |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ne sry hab das irgendwie mit if verwechelt! | ||
2 dinge sind unendlich die menschliche Dummheit und das Universum obwohl beim Universum bin ich mir nicht ganz sicher. (Albert Einstein) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group