Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kleines String Format problem (https://www.delphipraxis.net/184471-kleines-string-format-problem.html)

EWeiss 29. Mär 2015 00:57

Kleines String Format problem
 
Delphi-Quellcode:
function TForm1.FormatSign(Descr: String; n: Integer; Value: Double): String;
var
 Sgn: Integer;
 Sp: String;
 fmt: String;
begin

  Sgn := sign(Value);
  if (Sgn = 1) Or (Sgn = 0) then
    Sp := '+'
  else
  Sp := '-';

  fmt := '0.' + StringOfChar('0', n);

  result := Descr + Sp + Format('%7.4f', [Abs(Value)]);
end;
Zur zeit wird mein String so Formatiert!
0,1234
Ich möchte ihn aber so formatieren das die länge des String variable, abhängig von fmt ist.
Wenn also fmt = 8 ist soll der String so ausgegeben werden.
0,12345678

Im Moment ist er fest eigestellt mit 4f

gruss

Dalai 29. Mär 2015 01:06

AW: Kleines String Format problem
 
Ich sehe in deiner Funktion zwar keinen Bezug zwischen der Variable fmt und dem Rest, aber ich vermute mal, du willst eine dynamische Anzahl Nachkommastellen, je nachdem, was der Funktion im Parameter n übergeben wird. Ich denke, das müsste so funktionieren (ohne es zu wissen oder getestet zu haben):
Delphi-Quellcode:
Format('%7.' + IntToStr(n) + 'f', [Abs(Value)]);
.

MfG Dalai

EWeiss 29. Mär 2015 01:20

AW: Kleines String Format problem
 
Zitat:

Ich sehe in deiner Funktion zwar keinen Bezug zwischen der Variable fmt und dem Rest
fmt := 0.0000
wenn n = 4
fmt := 0.000000000
wenn n = 9

Deine Variante funktioniert .. Danke
Verstehe aber nicht warum das dann nicht geht.

Format('%7.' + fmt + 'f', [Abs(Value)]);

fmt ist doch ein string ;)

gruss

Sir Rufo 29. Mär 2015 01:42

AW: Kleines String Format problem
 
Wenn man einen Blick in die Hilfe werfen würde, dann käme man auf
Delphi-Quellcode:
// variable Formatierung
Format( '%*.*f',[n+2, n, ABS( Value )] );
;)

Ach ja,
Delphi-Quellcode:
Format( '%7.0.0000f', [ABS( Value )] );
entspricht nicht ganz den Vorgaben, womit die Delphi-Referenz durchsuchenFormat-Funktion etwas anfangen kann ;)

himitsu 29. Mär 2015 01:45

AW: Kleines String Format problem
 
Und natürlich auch noch Delphi-Referenz durchsuchenFormatFloat.

Wobei Delphi-Referenz durchsuchenFloatToStrF und Delphi-Referenz durchsuchenStr mit den selben Parametern, wie
Delphi-Quellcode:
Format('%*.*f', ...)
:stupid:

Sir Rufo 29. Mär 2015 01:48

AW: Kleines String Format problem
 
Zitat:

Zitat von himitsu (Beitrag 1295232)
Und natürlich auch noch Delphi-Referenz durchsuchenFloatToStrF und Delphi-Referenz durchsuchenStr, mit den selben Parametern, wie bei
Delphi-Quellcode:
'%*.*f'
:stupid:

Du meintest sicher Delphi-Referenz durchsuchenFormatFloat ;) (Da stand doch eben noch etwas anderes ...)

EWeiss 29. Mär 2015 01:57

AW: Kleines String Format problem
 
Zitat:

Wenn man einen Blick in die Hilfe werfen würde, dann käme man auf
Ja wenn man sie denn Installiert hätte ;)

Zitat:

Ach ja, Format( '%7.0.0000f', [ABS( Value )] ); entspricht nicht ganz den Vorgaben, womit die Delphi-Referenz durchsuchenFormat-Funktion etwas anfangen kann
ops.. ja ist logisch kann nicht gehen.

Danke für die Infos.

gruss

himitsu 29. Mär 2015 03:43

AW: Kleines String Format problem
 
Ohne kann man doch nicht richtig arbeiten, wie du bemerkt hast. :zwinker:

http://www.delphipraxis.net/dp_reference.php
Und ein richtiger Browser erkennt das und bietet dir an diese Referenz als Suchprovider im Browser einzurichten. :stupid:
Es gab hier auch irgendwo etwas, womit man diese Referenz direkt ins F1 vom Delphi bekommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz