Type einer Variable herausfinden (....like IsInt(variable))
Übersicht

tmode00Betreff: Type einer Variable herausfinden (....like IsInt(variable)) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
wie kann ich den Datentyp einer Variable ermitteln. Hat Blitzbasic eine Function die ermittelt ob es sich bei der übergebenen Variable um eine Zahll oder um einen Text handelt? Ich brauche es, um zu prüfen ob es sich bei einer Usereingabe um eine Zahl hadelt (dann ok) und wenn nicht dann halt >> "FEHLER, ZAHL MUSS EINGEGEBEN WERDEN, KEIN TEXT" example: Code: [AUSKLAPPEN] While Not KeyHit(1)
If (z_weite >= 20) And (z_weite < 10000) Then Exit Else z_weite = frage("Länge des Levels!","Wie lang soll das Level sein?","Auswahl (min. 20):") txt$ = "" EndIf Wend Frage() ist eine Function die per value=getkey() in einer Schleife Tasteneingaben verfolgt und nach Ok klick das ergebnis in der Globalen Variable txt$ speichert (ich weis das man globale variablen nicht so verwenden soll sondern vielmehr Return verwenden soll, das ist aber nicht möglich da Return nur Int und kein Str zurückgeben kann, die function Frage aber auch in zusammenhang mit Texteingaben z.B. Ihr Name--> _ verwendbar sein soll) Zusammenfassende Frage: gibt es schlicht und einfach eine Function die so aufgebaut ist: IsStr$(Stringvariable$) Rückgabe--> 1 = true (ja, es ist ein string) / 2 = false (nein es ist keiner) oder IsInt$(zahl) --> 1 = true / 2 = false .... Thanks im Voraus and sorry for the bad Rechtschreibung!! |
||
While (1) : Wend |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] function IsNumber(ein$)
if int(ein) = ein then return true return false end function Ungetestet, sollte es aber sein. Und natürlich kann ein return auch einen String zurückgeben. Du musst deine Funktion nur im Kopf passend deklarieren Code: [AUSKLAPPEN] function zeichenkette$(parameter)
liefert eine Zeichenkette zurück ![]() |
||
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 |
tmode00Betreff: Oh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Herzlichen Dank, ich mache manchmal noch hier und da Fehler, ich wusste nicht das das in Blitzbasic geht aber das wird dann wohl dem
char functionsname(functionsparameter); von anderen programmiersprachen entsprechen, ich dachte mir schon fast das blitzbasic das auch kann! Vielen dank ich habe es mit deiner hilfe nun so gemacht: Code: [AUSKLAPPEN] While Not KeyHit(1) If (Int(z_weite$) >= 20) And (Int(z_weite$) < 10000) Then Exit Else z_weite$ = frage("Länge des Levels!","Wie lang soll das Level sein?","Auswahl (min. 20):") EndIf Wend und die function Frage: Code: [AUSKLAPPEN] Function frage$(titel$,frage$,auswahl$) FlushKeys ;Sound abspielen chn = PlaySound(warnung_snd) temp = MilliSecs() If MilliSecs() - temp > 3000 Then StopChannel(chn) While (1) Cls ;zeichnen: DrawImage bg,0,0 DrawImage frage_map,312,200 DrawImage ok,455,345 SetFont titel_schrift ;Titel Color 100,100,200 Text 323,201, titel$ ;Frage ausgeben SetFont gros_schrift Color 0,0,0 Text 330,240,frage$ ;Backspace + Entf--> If KeyDown(14) And count > 0 Then Delay(100) count = count - 1 txt$ = LSet$(txt$,count) EndIf value = GetKey() If value <> 0 And value <> 8 Then txt$ = txt$ + Chr$(value) count = count + 1 value = 0 EndIf Text 330,290, auswahl$ + ": " + txt$ ;Okay-EVENT--> If RectsOverlap(MouseX(), MouseY(), 1,1, 455, 346, 345,36) Then If MouseHit(1) Then Return txt$;zurückgeben EndIf EndIf ;OKay-Event durch Enter If KeyHit(28) Then Return txt$;zurückgeben EndIf ;Escape: If KeyHit(1) Then Exit ;Maus: DrawImage mouse_map,MouseX(),MouseY() FlushMouse() Flip Wend End Function Dankeschön!!! |
||
While (1) : Wend |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group