Seite 1 von 2

Funktion aus String starten

Verfasst: 18.05.2006 22:10
von sen-me
Geht das?
Also z.B.

Procedure SayYes()
MessageRequester("Ja","Ja")
EndProcedure

Und dann steht in nem String
"SayYes()"

Verfasst: 18.05.2006 22:18
von roherter
Weiß nicht genau was du machen willst höchstens so

Code: Alles auswählen

Procedure.s SayYes()
MessageRequester("Ja","Ja")
Procedurereturn "SayYes()"
EndProcedure

Verfasst: 18.05.2006 22:28
von ullmann
Er meint vermutlich:

Es wird ein String "SayYes()" übergeben und der Computer ermittelt daraus, dass er die Prozedur SayYes() ausführen soll.

Da man IF EndiF als bekannt voraussetzen sollte, könnte es sein, dass das ganz allgemein für beliebige Prozedurnamen in Strings funktionieren soll. (?)

Rainer

Verfasst: 18.05.2006 22:32
von edel
Koennte man ja so machen :

Code: Alles auswählen

Structure proc
  name.s
  adress.l
EndStructure

newlist Proc.proc()

Procedure SayYes()
  MessageRequester("Ja","Ja")
EndProcedure 

AddElement(Proc())
Proc()\name   = "sayyes"
Proc()\adress = @SayYes()

name.s = InputRequester("","","")
name   = lcase(name)

ForEach Proc()
  If Proc()\name = name
    CallFunctionFast(Proc()\adress)
    Break
  EndIf
Next

Verfasst: 20.05.2006 13:39
von Kaeru Gaman
dieses rumgerätsele bringt doch nix...


@sen-me

beschreib doch mal bitte genauer, was du machen möchtest..

Verfasst: 20.05.2006 13:50
von Alves
Ich glaube genau das was ullmann sagt.
zB für einen eigenen Compiler.
Man gibt einen Befehl in einen String ein und er startet dafür die Procedur.

Verfasst: 20.05.2006 13:54
von DarkDragon
Alves hat geschrieben:Ich glaube genau das was ullmann sagt.
Glaub ich nämlich auch. Und sowas geht nur wenn PureBasic ne Scriptsprache wäre und sowas will ja wohl keiner. :freak:

Verfasst: 20.05.2006 14:01
von MVXA
> zB für einen eigenen Compiler.
Eher interpreten, der compiler führt nix zur Compilierzeit aus.

Verfasst: 20.05.2006 17:14
von bizzl
Auf dem Amiga gab es mal ein Basic, AMOS hieß das, da ging sowas.
Man konnte tatsächlich

Code: Alles auswählen

a$="test"
goto a$
end
test:
tu dies und das
schreiben.
Hilft ihm zwar gerade nicht weiter, aber ich glaube, sowas in der Art meint er.

Verfasst: 20.05.2006 17:21
von DarkDragon
@bizzl: jo eben, das mein ich auch.