Funktion aus String starten
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@sen-me
in einem string werden alle zeichen (so glaube ich), außerals character interpretiert, egal ob schlüsselwort oder bezeichner(variable oder procedur ect.)gibt die zeichenfolge aus die zwischen " " steht, egal ob predefined oder selbst-definierte bezeichner enthalten sind. output:wenn du solch eine procedure definierst:dann bzw wenn in deiner procedure noch eine zeile mit MessageRequester(...) steht, dann wird dieser MR zur laufzeit nur im zweiten beispiel ausgeführt
in einem string werden alle zeichen (so glaube ich), außer
Code: Alles auswählen
"
Code: Alles auswählen
Debug "bla NewList Debug InitSPrite() MyVar MyProc() bla"
Code: Alles auswählen
bla NewList Debug InitSPrite() MyVar MyProc() bla
Code: Alles auswählen
Procedure.s SayYes()
ProcedureReturn "YES"
EndProcedure
Code: Alles auswählen
Debug "bla SayYes() bla"
<output:>
bla SayYes() bla
Code: Alles auswählen
Debug "bla" + SayYes() + "bla"
<output:>
bla YES bla
ja, was du geschrieben hast geht, aber es macht keinen sinn. deine procedur wird nicht aufgerufen/ausgeführtGeht das?

du willst wahrscheinlich mit nem client nen string an nen server schicken, und der server soll dann aus dem erhaltenen string den prozedurnamen rausfischen und die procedure aufrufen.(?) ja der server, als eigenständiges programm, kennt die procedure aber nich, wenn sie nur im client-programm definiert wurde (oder auch andersrum)! du kannst keine procedures verschicken. (du könntest höchtens deine procedure als mini-program, also als compilierte *.exe verschicken. und der server kann das erhaltene programm dann starten). wenn der client den server dazu bringen will nen MR("Ja","Ja",...) anzuzeigen, dann musst du selber eine nachricht definieren, von mir aus als string, z.b.:
Code: Alles auswählen
nachricht$="machnenRequi!"
und der server prüft dann
Code: Alles auswählen
If erhalteneNachricht$="machnenRequi!"
MessageRequester("ja","ja",...)
EndIf
Zuletzt geändert von #NULL am 29.05.2006 18:21, insgesamt 1-mal geändert.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
so etwas könntest du lösen, indem du dir einen interpreter bastelst.
der client hat eine befehlsbibliothek und eine laufzeitumgebung.
der server sendet befehle mit argumenten,
die der client innerhalb dieser umgebung verarbeiten kann.
der client hat eine befehlsbibliothek und eine laufzeitumgebung.
der server sendet befehle mit argumenten,
die der client innerhalb dieser umgebung verarbeiten kann.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
wenn es nur darum geht, dass du eine selbstdefinierte procedure in beiden programmen (server+client) brauchst, diese aber nicht jeweils extra maunell in den quellcode pappen willst, dann pack sie doch einfach in eine include-datei, und importiere diese inc.datei in beide programme!(?)
siehe PB-hilfe: IncludeFile
[oder hier nochmal nachfragen, wennde ni west wi]
OR...
bezüglich eines gewöhnlichen MessageRequetschrejdhjscncndcdc...... :
im client:...verschicken..
und im server:
siehe PB-hilfe: IncludeFile
[oder hier nochmal nachfragen, wennde ni west wi]
OR...
bezüglich eines gewöhnlichen MessageRequetschrejdhjscncndcdc...... :
im client:
Code: Alles auswählen
nachricht$="OOOoooooooh Yes, Sir!!!"
und im server:
Code: Alles auswählen
MessageRequester("TITTL", erhalteneNachricht$,0)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Vielleicht hilft diese kleine Spielerei ja weiter

Code: Alles auswählen
Macro DefineProc(NAME)
Procedure NAME(Titel.s, Text.s, Flag.l = 0)
ProcedureReturn MessageRequester(Titel, Text, Flag)
EndProcedure
EndMacro
DefineProc(SagWas)
DefineProc(SagWasAnderes)
SagWas("Sag Was", "Ja")
SagWasAnderes("Sag Was Anderes", "Nein")
SagWas("Was denn", "Es ist ein Fehler aufgetreten", #MB_ICONERROR)
DefineProc(DeinAlter)
DefineProc(YES)
DefineProc(NO)
Select DeinAlter("Dein Alter", "Bist Du schon 18?", #PB_MessageRequester_YesNo)
Case #PB_MessageRequester_Yes
YES("Oh", "doch so alt", #MB_ICONINFORMATION)
Case #PB_MessageRequester_No
NO("Pech", "dann darfste den Film nicht sehen", #MB_ICONEXCLAMATION)
EndSelect
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
