In einem
nonVCL-Projekt benutze ich die Format-Funktion aus Luckies Toolbox:
Delphi-Quellcode:
function Format(fmt: string; params: array of const): string;
var
pdw1, pdw2: PDWORD;
i: integer;
pc: PCHAR;
begin
pdw1 := nil;
if length(params) > 0 then GetMem(pdw1, length(params) * sizeof(Pointer));
pdw2 := pdw1;
for i := 0 to high(params) do begin
pdw2^ := DWORD(PDWORD(@params[i])^);
inc(pdw2);
end;
GetMem(pc, 1024 - 1);
try
SetString(Result, pc, wvsprintf(pc, PCHAR(fmt), PCHAR(pdw1)));
except
Result := '';
end;
if (pdw1 <> nil) then FreeMem(pdw1);
if (pc <> nil) then FreeMem(pc);
end;
Diese Funktion beruht also auf wvsprintf. Nun wollte ich folgenden String formatieren:
sTotalBytes := Format('%1.2f', [FTotalBytes / 1000]);
Mit der
RTL-
Unit Sysutils kein Problem. Aber mit der
API-Funktion bekomm ich nur "f" angezeigt. Schaue ich mir die Dokumentation von wvsprintf an, seh ich auch, warum: es git dort kein Formator-Zeichen f.
Also wie kann man mit dieser Funktion Gleitkommakonvertierungen durchführen?