Funktion aus String starten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Funktion aus String starten

Beitrag von sen-me »

Geht das?
Also z.B.

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

Und dann steht in nem String
"SayYes()"
Bild
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag 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
Purebasic 5.0 32bit und 64 bit

I'm back from hell
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag 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
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

dieses rumgerätsele bringt doch nix...


@sen-me

beschreib doch mal bitte genauer, was du machen möchtest..
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag 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.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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:
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

> zB für einen eigenen Compiler.
Eher interpreten, der compiler führt nix zur Compilierzeit aus.
Bild
bizzl
Beiträge: 82
Registriert: 08.09.2005 18:07
Computerausstattung: AMD Athlon II X4 635
Windows 7 64 Bit
Wohnort: Nordhessen - früher : Südniedersachsen

Beitrag 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.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

@bizzl: jo eben, das mein ich auch.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten