Jo, leider nicht genug Infos, aber mehr, als man bei sowas wie printf rein bekommt (dort garkeine Typ-Info, außer dem Wert oder einen Zeiger auf die Variable) und noch nichtmal die Anzahl der Parameter ist bekannt.
Hatte mal versucht ein Format zu basteln, wo die Daten wie bei printf übergeben werden.
In Delphi kann man sowas leider auch nicht nativ schreiben, aber jedenfalls man eine Funktion ohne die Parameter schreiben, die als Export deklarieren und in der selben Datei wieder einen Import auf sich selber, der dann in der Definition diese offenen Parameter hat.
Aber leider bekommt man eben keinerlei Infos die übergebenen Werte.
Darum muß man dort auch selber im String das "genaue" Format angeben (nicht nur %d sondern auch ob Byte, Word, LongWord, ShortInt, SmallInt, LongInt usw.)
Also in der Hinsicht ist Format doch recht einfach, auch wenn teilweise echt blöd ist.
Ich kann nicht %p nehmen und dann ein Objekt oder Integer reingeben, der in der aktuellen Pointergröße (32 oder 64) ausgegeben wird.
Oder einen Integer mit Tausenderpunkten, den muß man erst in einen Fließkomma umwandeln (x/1) und kann dann %.0n verwenden. (k.A. warum man nicht direkt einen Integer als Float darstellen darf usw.)
Zitat:
Wie kann ich eine Funktion oder Prozedure schreiben die wie Write eine variable ANzahl Parameter übergeben bekommt
Wie gesagt, man kann soeine Funktion schreiben (besser in eine
DLL legen, denn innerhalb einer EXE schreiben und benutzen ist ein grauß), aber die Funktion weiß nicht was ihr übergeben wurde und das müsste man dann zusätzlich noch als Info mit reingeben.
Über die
RTTI kann man ansonsten nur noch nativ "beliebige" Funktionen aufrufen. (siehe Invoke in System.RTTI.pas)