Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zahlen im String: Formatierung (https://www.delphipraxis.net/84529-zahlen-im-string-formatierung.html)

Hirnsausen 18. Jan 2007 00:50


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...

mkinzler 18. Jan 2007 05:34

Re: Zahlen im String: Formatierung
 
Die Strings nach Extended wandeln und dann zurück in Strings formatieren.

marabu 18. Jan 2007 06:48

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:
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;
Die Funktion erwartet eine normalisierte Darstellung. Vorzeichen und führende Nullen können leicht noch berücksichtigt werden.

Grüße vom marabu

yörsch 18. Jan 2007 06:59

Re: Zahlen im String: Formatierung
 
:hi: versuchs mal damit

Delphi-Quellcode:
var HELP : String;
begin
HELP := '2000789000123';
HELP := Format('%1.0n',[StrToFloat(HELP)] );
und wenn du die tausender formatieren must dann
function Format(const Format: string; const Args: array of const; const FormatSettings: TFormatSettings): string;

Hirnsausen 18. Jan 2007 11:32

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