![]() |
Zahlen im String: Formatierung
Hallo.
Ich habe mehrere Strings, die verschieden große (verschieden lange) Zahlen wiedergeben. Ich will in diese Strings die Tausender-Trennzeichen einfügen. Hat jemand eine Idee für eine smarte Funktion, die dies bewerkstelligt, unabhängig von der Größe der Zahl? Meine Coca Cola ist aus, mir raucht die Rübe, und ich sehe nur noch Zahlen - ich scheine es einfach nicht zu schaffen... |
Re: Zahlen im String: Formatierung
Die Strings nach Extended wandeln und dann zurück in Strings formatieren.
|
Re: Zahlen im String: Formatierung
Guten Morgen,
wenn es sich um Ganzzahlen ohne Vorzeichen mit mehr als 20 Stellen handelt, dann würde ich es mit einer eigenen Funktion erledigen:
Delphi-Quellcode:
Die Funktion erwartet eine normalisierte Darstellung. Vorzeichen und führende Nullen können leicht noch berücksichtigt werden.
function FormatNumber(const s: String; const tsep: Char): String;
var i, iPos, nSep, nHead: Integer; begin if s = '' then Result := '' else begin nSep := Pred(Length(s)) div 3; SetLength(Result, Length(s) + nSep); nHead := Succ(Pred(Length(s)) mod 3); if nHead > 0 then Move(s[1], Result[1], nHead); for i := 0 to Pred(nSep) do begin iPos := Succ(nHead) + i shl 2; Result[iPos] := '.'; Move(s[Succ(nHead) + i * 3], Result[Succ(iPos)], 3); end; end; end; Grüße vom marabu |
Re: Zahlen im String: Formatierung
:hi: versuchs mal damit
Delphi-Quellcode:
und wenn du die tausender formatieren must dann
var HELP : String;
begin HELP := '2000789000123'; HELP := Format('%1.0n',[StrToFloat(HELP)] ); function Format(const Format: string; const Args: array of const; const FormatSettings: TFormatSettings): string; |
Re: Zahlen im String: Formatierung
Sehr gute Lösungen, vielen Dank an alle! Ihr habt mir sehr geholfen!
Hiermit kann dieser Thread als geschlossen angesehen werden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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