Hi!
Ich habe da eine Frage, die (mal wieder) ziemlich blöd klingt: Wie kann ich unterschiedliche Datentypen mit einer Variable bearbeiten?
Die Idee ist folgende:
Ich möchte mit dem Befehl
Loaddata(1)
den index ansprechen, also eine simple nummer. Im Gegenzug dazu möchte ich aber auch die Möglichkeit offen lassen, dass jemand, der die Nummer nicht weiss, einfach
Loaddata("objektname")
ein gibt und dadurch auch dort hin kommt.
Wie genau muß da die Funktion beschaffen sein bzw. wie genau kann ich die Funktion anlegen, damit das auch funktioniert? Muß bzw. sollte ich alles erst mal als String einlesen und danach überprüfen, ob es sich um eine Zahl handelt oder so?
Hat wer eine Idee für mich?
Gruß
W.
Das geht in GLBasic so nicht.
Mach halt 2 Funktionen:
Loaddata und Loaddata_fromID
Was ist, wenn ich beides als String einlese? Alias:
Loaddata("1") oder Loaddata("Objekt")
So würde es aber funktionieren, oder?
Hallo,
warum soll das nicht gehen ?
Kann ich in GLBasic nicht erst der Variablen eine Zahl zuweisen und irgenwann später
der gleichen Variablen einen String ?
Ich gebe bei der Definition doch auch keinen Typ an. Da sollte es doch egal sein, was ich
übergebe.
Die Funktion müßte dann doch nur Abfragen ob die Übergabe eine Zahl ist oder ein
String und dann entsprechend anders reagieren.
Gruß Heiko
Hallo,
gerade mal getestet :
test(1)
SHOWSCREEN
MOUSEWAIT
test("Hallo")
SHOWSCREEN
MOUSEWAIT
END
FUNCTION test: var$
IF ABS(var$)> 0
PRINT "Eine Zahl", 10, 10
ELSE
PRINT "Ein String", 10,20
ENDIF
ENDFUNCTION
Sollte doch so gehen ?!?!!?
Gruß Heiko
Ich teste es sofort aus, wenn ich daheim bin! Es geht nämlich darum, daß ich aus der Datenbank mit Namen oder Indexnummer Daten einlesen kann! Wenn das halbwegs hin haut, dann wird das spitze! Im Augenblick muß man die Daten zwar noch händisch eingeben, aber ich schaue, daß ich noch eine GUI Eingabemaske schreibe. =)
Schlaues HeikoJ ;)
Aber das Problem wird wohl das umformen eines Strings in einen Integer sein ! wenn er es braucht, wovon ich ausgehe wie ich Willi kenn!
Hallo Schranz0r,
warum soll das Umwandeln ein Problem sein.
Wenn ich folgendes schreibe :
varint = var$
sollte es doch automatisch gehen ! Oder ?
Gruß Heiko
Tatsache, und nochmal schlaues HeikoJ :)
Watn Scheiß erzählt ihr denn da?
int var kann nicht string var sein... zumindest sagt mir das c++ immer...
Geht doch??
Oder hab ich was falsch verstanden??
GLOBAL get AS Tall
get = getall("3")
PRINT get.a$,10,10
PRINT get.b/2*3+5,10,20
SHOWSCREEN
KEYWAIT
FUNCTION getall AS Tall: l_in$
LOCAL temp AS Tall
temp.a$ = l_in$
temp.b = l_in$
RETURN temp
ENDFUNCTION
TYPE Tall
a$
b
ENDTYPE
Es geht, habs auch getestet!
var$ = "10"
varint = var$
PRINT var$,10,10
PRINT varint*2,10,20
SHOWSCREEN
KEYWAIT
???
Also ich kenne mich jetzt gar nicht mehr aus! =D
Korrekt. GLBasic wandelt worte in Zahlen und umgekehrt um:
a$ = "123.234"
zahl = a$
PRINT zahl, 0,0
SHOWSCREEN; MOUSEWAIT
So, habe herumexperimentiert wie ein Wahnsinniger und... es funktioniert nicht!
Habe alle möglichen Tests gemacht. Problem ist:
Wenn ich LOADDATA("test") schreibe, dann wird es super geladen.
Wenn ich jedoch LOADDATA(1) schreibe, dann habe ich das Problem, dass er 1 als Variable ansieht und ich als Inhalt 0 erhalte. Haben möchte ich aber 1 und als Konfortlösung wäre mir 1 ohne "" am liebsten.
Also LOADDATA(1) anstatt immer LOADDATA("1") schreiben zu müssen.
Hat wer eine Idee?
foo(1)
SHOWSCREEN
MOUSEWAIT
FUNCTION foo: a$
PRINT "a$ = "+a$, 100,100
ENDFUNCTION
Geht doch!?
Danke für den Tip! Ich habe eine simple Umwandlung benutzt! Stelle es bald online!
Habe nämlich inzwischen die GLDB so gut wie fertig. Man kann das Objekt jetzt nämlich per INDEX oder einfach per NAME suchen und ausgeben lassen. Ganz optimal läuft es zwar noch nicht, aber irgendwie schaffe ich das schon. Mal sehen, wie lange ich heute noch dran sitze. Dann kann ich morgen die erste Version online stellen.