![]() |
AW: Stream String lesen und schreiben
Ich baue ja keine Compiler würde mir aber sowas vorstellen wie:
Delphi-Quellcode:
Eigentlich müsste der Compiler ja wissen, was er gerade verlinkt.
procedure TStream.WriteData(Param);
begin if Param is String then WriteString(String(Param)) else begin was sonst gemacht wird end end; Kann natürlich auch sein, dass die Sichtweise zu naiv ist. |
AW: Stream String lesen und schreiben
Sagen wir mal, sie ist halt stark auf deinen Anwendungsfall fixiert.
|
AW: Stream String lesen und schreiben
Der Compiler weiß es, aber in der Funktion gibt es keinerlei Typinfos, wenn man nur den Zeiger rein gibt.
Delphi-Quellcode:
Beim Letzten werden eigentlich zwei Parameter übergeben,
procedure Write(Param: Pointer);
procedure Write(const Param); procedure Write(Param: Variant); procedure Write(Param: TVarRec); procedure Write(Param: array of const); aber man kann es sich auch einfach als
Delphi-Quellcode:
vorstellen.
procedure Write(Param: array of TVarRec);
Leider wird bei zukünftigen Implementationen immer weniger Compiler-Magic benitzt. Also nicht sowas wie beim alten Read/ReadLn/Write/WriteLn, wo der Aufruf in eine/mehrere kleine Eintzelaufrufe übersetzt wird, für jeden Typen entsprechend. Variante Parameter kann Delphi, aber leider nur aufrufen, denn offiziell kann man sie in Pascal nicht deklarieren. Wie bei der Format-Funktion des C++, ala sprintf. Was man machen kann, ist ein Overload, wie beim ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz