@mk-soft
Vllt kannst du ja mein Macro benutzen :
DimP()
Es liefert zwar auch nicht unbegrenzt Parameter, aber immer hin 16, und es wäre ausbaufähig.
Außerdem kann man Strings direkt übergeben und nicht als Pointer ... Außer du willst weiterhin Pointer nutzen:
Hier mal n ganz einfaches Beispiel ...
Code: Alles auswählen
; Meine Macros ...
Macro _O_ : ( : EndMacro
Macro _C_ : ) : EndMacro
Macro MacroRepeat2(F,B)
F#0#B,F#1#B,F#2#B,F#3#B,F#4#B,F#5#B,F#6#B,F#7#B, F#8#B,F#9#B,F#10#B,F#11#B,F#12#B,F#13#B,F#14#B,F#15#B
EndMacro
Macro MacroRepeat3(F,M,B)
F#0#M#0#B:F#1#M#1#B:F#2#M#2#B:F#3#M#3#B:F#4#M#4#B:F#5#M#5#B:F#6#M#6#B:F#7#M#7#B:F#8#M#8#B: F#9#M#9#B:F#10#M#10#B:F#11#M#11#B:F#12#M#12#B:F#13#M#13#B:F#14#M#14#B:F#15#M#15#B
EndMacro
Macro DimP(Parameter, DefaultValue)
MacroRepeat2(Nr,_#Parameter=DefaultValue) )
Dim Parameter(15)
MacroRepeat3(Parameter# _O_, _C_ =Nr, _#Parameter)
Defined(0,0
EndMacro
; -------------
; Definition der Procedure:
Procedure.s Format(MainString.s, DimP(String.s,""))
Protected n = 0
While String(n)
MainString = ReplaceString(MainString, "%"+Str(n+1), String(n))
n + 1
Wend
ProcedureReturn MainString
EndProcedure
Debug Format("%1 hier %3 %2 mega %4 ", "Das","ja", "ist", "cool")
EDIT: aber leider kann man hier die ParameterTypen nicht mischen, hat sich also erledigt ..