GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2007-Oct-05

Title: Funktion und Datentyp
Post by: WPShadow on 2007-Oct-05
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.
Title: Funktion und Datentyp
Post by: Kitty Hello on 2007-Oct-05
Das geht in GLBasic so nicht.
Mach halt 2 Funktionen:
Loaddata und Loaddata_fromID
Title: Funktion und Datentyp
Post by: WPShadow on 2007-Oct-05
Was ist, wenn ich beides als String einlese? Alias:

Loaddata("1") oder Loaddata("Objekt")

So würde es aber funktionieren, oder?
Title: Funktion und Datentyp
Post by: HeikoJ on 2007-Oct-05
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
Title: Funktion und Datentyp
Post by: HeikoJ on 2007-Oct-05
Hallo,

gerade mal getestet :

Code (glbasic) Select
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
Title: Funktion und Datentyp
Post by: WPShadow on 2007-Oct-05
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. =)
Title: Funktion und Datentyp
Post by: Schranz0r on 2007-Oct-05
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!
Title: Funktion und Datentyp
Post by: HeikoJ on 2007-Oct-05
Hallo Schranz0r,

warum soll das Umwandeln ein Problem sein.
Wenn ich folgendes schreibe :

varint = var$

sollte es doch automatisch gehen ! Oder ?

Gruß Heiko
Title: Funktion und Datentyp
Post by: Schranz0r on 2007-Oct-05
Tatsache, und nochmal schlaues HeikoJ :)
Title: Funktion und Datentyp
Post by: trucidare on 2007-Oct-05
Watn Scheiß erzählt ihr denn da?

int var kann nicht string var sein... zumindest sagt mir das c++ immer...
Title: Funktion und Datentyp
Post by: D2O on 2007-Oct-05
Geht doch??
Oder hab ich was falsch verstanden??

Code (glbasic) Select
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
Title: Funktion und Datentyp
Post by: Schranz0r on 2007-Oct-05
Es geht, habs auch getestet!

Code (glbasic) Select
var$ = "10"
varint = var$

PRINT var$,10,10
PRINT varint*2,10,20
SHOWSCREEN
KEYWAIT
Title: Funktion und Datentyp
Post by: WPShadow on 2007-Oct-06
???

Also ich kenne mich jetzt gar nicht mehr aus! =D
Title: Funktion und Datentyp
Post by: Kitty Hello on 2007-Oct-07
Korrekt. GLBasic wandelt worte in Zahlen und umgekehrt um:

a$ = "123.234"
zahl = a$
PRINT zahl, 0,0
SHOWSCREEN; MOUSEWAIT
Title: Funktion und Datentyp
Post by: WPShadow on 2007-Oct-11
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?
Title: Funktion und Datentyp
Post by: Kitty Hello on 2007-Oct-11
Code (glbasic) Select
foo(1)
SHOWSCREEN
MOUSEWAIT


FUNCTION foo: a$
PRINT "a$ = "+a$, 100,100
ENDFUNCTION
Geht doch!?
Title: Funktion und Datentyp
Post by: WPShadow on 2007-Oct-11
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.