Ich habe mir mal die Mühe gemacht eine Lib zu entwickeln, welche der String-Interpolation schon recht nahe kommt:
Delphi-Quellcode:
NetFormat.ToString('Hello, {0}! Today is {1:ddd}, it's {1:HH:mm} now.', name, date);
// Hello, Mark! Today is Wednesday, it's 19:40 now.
Die Variablen werden automatisch erkannt und konvertiert (automatischer Typrückschluß via Generics), so ist es nicht erforderlich IntToStr, FloatToStrF usw zu verwenden.
Hier nochmal eine Kurzerklärung zum Format. grundsätzlich orientieren sich die Spezifizierer für das Format an .Net. Deshalb weicht das Datumsformat etwas, der Rest deutlicher ab. Ich halte das aber für intuitiver als die sprintf-Konvention die Delphi übernommen hat:
Delphi-Quellcode:
// Integer werden automatisch als Fließkomma und Fließkomma als Integer formatiert, sofern erforderlich.
// C für Währung (Zahl gibt Nachkomma an)
// D für Ganzzahl (Zahl gibt führende Nullen an)
// F für Fließkomma (Zahl gibt Nachkomma an)
//
// Datum kann:
// dd = Tag, MM=Monat, yyyy=Jahr
// HH=Stunde, mm=Minute, ss=Sekunde
// es gibt weitere Möglichkeiten Siehe readme.
Hier das Repo/Download hierzu:
https://github.com/VoSs2o0o/NetFormat
Ich habe außerdem auf meine Webseite einen Artikel verfasst, wie es funktioniert und wie es aufgebaut ist:
https://www.cloud-9.de/entwicklung/d...-format-befehl
Die readme ist im Projekt:
https://github.com/VoSs2o0o/NetForma...ster/readme.md
Ich freue mich über eure Rückmeldungen, und vielleicht hilft es ja dem einen oder anderen weiter