Prüfen ob Wert ein Integer ist

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

count-doku

Betreff: Prüfen ob Wert ein Integer ist

BeitragMi, März 17, 2010 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

wie kann ich prüfen ob ein vom Benutzer eingegebener Wert eine Ganzzahl ist?


mfg,
count-doku

blackgecko

BeitragMi, März 17, 2010 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
txt$ = Input()
zahl = Int(txt$)
If Text$ = zahl Then .......

So zum Beispiel. Du wandelst den eingegebenen Text in eine Zahl um und vergleichst die beiden dann.
So long and thanks for all the fish.
Fedora 17 | Windows 7 || BlitzPlus | BlitzMax
Rechtschreibflame GO!!! Deppenapostroph | SeidSeit | Deppenakzent | DassDas | Deppenleerzeichen | TodTot | enzigste.info - Ja, ich sammel die.

Chester

BeitragMi, März 17, 2010 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder du prüfst, ob es bei der Division durch den Int-gecasteten Wert der Variable einen Rest gibt. Falls nicht, ist eine Integerzahl:

Beispiel:
BlitzBasic: [AUSKLAPPEN]
Print CheckInt(5)
Print CheckInt(5.4)
WaitKey()

Function CheckInt( t# )
If t Mod Int(t) = 0 Then Return True
End Function

count-doku

BeitragMi, März 17, 2010 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Smile

Ich nehme die erste Methode, weil der Benutzer warscheinlich dazu neigen wird
Strings einzugeben.


mfg,
count-doku

BtbN

BeitragDo, März 18, 2010 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es damit, zu prüfen, ob der eingegebene String ein . oder ein , enthält?

ToeB

BeitragDo, März 18, 2010 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder einfach eine mischung aus beidem :
Code: [AUSKLAPPEN]
txt$ = Input("Eingabe : ")
If CheckEingabe(txt$) = 1
   Print "Die Eingabe ist eine Ganzzahl !"
Else
   Print "Die Eingabe ist keine Ganzzahl !"
EndIf
WaitKey()


Function CheckEingabe(txt$)
   If Int(txt$) = txt$ Then
      If Int(txt) = Floor(txt) Then Return True
   EndIf
   Return False
End Function


mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Silver_Knee

BeitragDo, März 18, 2010 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Int(txt$) = txt$
ist doch nur true wenn der int = dem text enspricht

3 = "3.5" ist demnach falsch

count-doku

BeitragDo, März 18, 2010 16:17
Antworten mit Zitat
Benutzer-Profile anzeigen
silver_knee, das stimmt natürlich.
In dem Fall müsste man dann Float(txt$)=txt$ verwenden.

Aber ich weiß ja das korrekte Werte nur Integer seien können.
D.h. eine Floatzahl als Eingabe wäre ebenfalls falsch.



mfg,
count-doku

Pummelie

BeitragDo, März 18, 2010 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, so eine prüfung ist doch was nettes, hier mal mein beitrag als funktion(aus langeweile im Browser gescriebn, die anderen sind natürlich schneller):
BlitzBasic: [AUSKLAPPEN]
Function Check_Int(txt$)
Local size=Len(txt$),i,char$
For i=1 To size
char$=Mid$(txt$,i,1)
Select char$
Case 0
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Case 8
Case 9
Case "-"
Select i
Case 1
Default
Return(0)
End Select
Default
Return(0)
End Select
Next
Return(1)
End Function


Gibt 0 zurück wenn es kein int ist, und 1 wenn es sich um ein int handelt.
Sollte eigentlich auch negative Zahlen durchgehen lassen, habe es aber nicht geprüft.

Edit: Geprüft, funktioniert bei mir super Smile
It's done when it's done.

Chrise

BeitragDo, März 18, 2010 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...hp?t=34155

Hatte ich da nicht letztens was gemacht? o_O
Aber es wollte ja keiner was davon wissen. Schade.


lg Chrise
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

count-doku

BeitragFr, März 19, 2010 9:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Chrise,
das ist noch besser weil man da den Typ
exakt rauskriegt.

mfg,
count-doku

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group