isnummeric
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
PebenderBetreff: isnummeric |
So, Apr 16, 2017 12:53 Antworten mit Zitat |
|
---|---|---|
Hallo,
in manchen Basicdialekten, gibt es den Befehl isnummeric, damit kann man prüfen, ob im Text nur Zahlen sind. Wie kann ich denn in Bmax so einen Test machen?? mfg |
||
BMax & MaxGUI |
Jolinah |
So, Apr 16, 2017 13:32 Antworten mit Zitat |
|
---|---|---|
Hallo,
Ich glaube nicht dass es diese Funktion in Bmax gibt, bin mir jedoch nicht ganz sicher. Aber selber so eine Funktion zu schreiben, sollte nicht allzu schwer sein. Zeichen für Zeichen durchgehen. Sobald du auf ein Zeichen triffst, das nicht einen ASCII-Wert zwischen 48 (0) und 57 (9) hat, kannst du False zurückgeben. Nachdem alle Zeichen durch sind und nie False zurückgegeben wurde, kannst du am Ende True zurückgeben. Optional kannst du auch den Dezimalpunkt mit dem ASCII-Wert 46 mit einbeziehen. |
||
Pebender |
So, Apr 16, 2017 13:38 Antworten mit Zitat |
|
---|---|---|
Danke.
Ich wollte das ganze mit keydown () probieren, wobei mit ASCII... Könnte simpler sein. Mfg |
||
BMax & MaxGUI |
Pebender |
So, Apr 16, 2017 13:39 Antworten mit Zitat |
|
---|---|---|
Danke.
Ich wollte das ganze mit keydown () probieren, wobei mit ASCII... Könnte simpler sein. Mfg |
||
BMax & MaxGUI |
Hubsi |
So, Apr 16, 2017 14:01 Antworten mit Zitat |
|
---|---|---|
Edit: Gschmarre, hab Mist gepostet | ||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
BladeRunnerModerator |
So, Apr 16, 2017 15:42 Antworten mit Zitat |
|
---|---|---|
BlitzMax: [AUSKLAPPEN] Function isnumeric:Int(str:String,checkforPoint:Int=False) |
||
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 |
XeresModerator |
So, Apr 16, 2017 17:14 Antworten mit Zitat |
|
---|---|---|
Der Grenzfall, dass von Anfang an ein leerer String eingegeben wird, müsste ggf. noch abgedeckt werden. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Pebender |
Mo, Apr 17, 2017 13:26 Antworten mit Zitat |
|
---|---|---|
sorry, ich weiß ich stell mich blöd an, aber wie kann ich damit ein Textfeld prüfen, damit nur Zahlen drin sind, und bei anderen Zeichen eine Fehlermeldung kommt ??
mfg |
||
BMax & MaxGUI |
XeresModerator |
Mo, Apr 17, 2017 13:51 Antworten mit Zitat |
|
---|---|---|
Du ließt das Textfeld aus, wirfst den Inhalt in die Funktion und prüftst den Rückgabewert. Wenn nur die Zahlen von 0-9 drinne waren, gibt die Funktion true zurück. Ansonsten kannst du eine Fehlermeldung ausgeben, eine Exception werfen oder was auch immer. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Thunder |
Di, Apr 18, 2017 22:12 Antworten mit Zitat |
|
---|---|---|
Ich finde BladeRunners Funktion echt interessant implementiert. Und zwar deswegen, weil ich sie nie so geschrieben hätte.
Wenn du die Funktion sehr oft ausführst, ist es vielleicht performanter sie anders zu schreiben, weil in BRs Code der String vielfach durchgelaufen wird und neue String-Objekte erstellt werden. Mein Code sähe so aus (ist allerdings ungetestet): BlitzMax: [AUSKLAPPEN] Function isnumeric(str$, checkforpoint=False) |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
BladeRunnerModerator |
Di, Apr 18, 2017 23:36 Antworten mit Zitat |
|
---|---|---|
Indeed, dein Ansatz ist deutlich performance optimierter. Allerdings: wie oft wird diese Funktion im realen Betrieb aufgerufen? Wenn die Software selbst halbwegs brauchbar geschustert ist in der Regel wohl nur wenn eine Eingabe abgeschlossen wurde (oder, worst case, wenn ein neuer Tastendruck vorliegt). Solange man nicht seitenweise Text damit prüft sollte also auch der "unperformante" Ansatz genügen.
Xeres: You're right, allerdings erlaubt die Funktion in der derzeitigen Version weitere Eingaben auch beim Leerstring, da sie mit einem True aussteigt und somit nicht fälschlicherweise (und doch irgendwo korrekt) einen nicht numerischen String meldet. Der Leerstring ist ja ... weder numerisch noch nicht numerisch. |
||
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 |
Fremen59 |
Di, Mai 16, 2017 15:28 Antworten mit Zitat |
|
---|---|---|
hab die pograme eingegebn und getested, bei den pogram von BladeRunner wird auch "...." als numerik erkant | ||
BladeRunnerModerator |
Mi, Mai 17, 2017 8:23 Antworten mit Zitat |
|
---|---|---|
Stimmt. Das abzufangen ist aber nicht sonderlich kompliziert. Die Funktion war in 2 Minuten hingesaut, ich erhebe keinen Anspruch auf Perfektion. | ||
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 |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group