AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines String Format problem

Ein Thema von EWeiss · begonnen am 29. Mär 2015 · letzter Beitrag vom 29. Mär 2015
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

Kleines String Format problem

  Alt 29. Mär 2015, 00:57
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
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#2

AW: Kleines String Format problem

  Alt 29. Mär 2015, 01:06
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):
Format('%7.' + IntToStr(n) + 'f', [Abs(Value)]); .

MfG Dalai
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Kleines String Format problem

  Alt 29. Mär 2015, 01:20
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
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Kleines String Format problem

  Alt 29. Mär 2015, 01:42
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, Format( '%7.0.0000f', [ABS( Value )] ); entspricht nicht ganz den Vorgaben, womit die Delphi-Referenz durchsuchenFormat-Funktion etwas anfangen kann
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#5

AW: Kleines String Format problem

  Alt 29. Mär 2015, 01:45
Und natürlich auch noch Delphi-Referenz durchsuchenFormatFloat.

Wobei Delphi-Referenz durchsuchenFloatToStrF und Delphi-Referenz durchsuchenStr mit den selben Parametern, wie Format('%*.*f', ...)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (29. Mär 2015 um 01:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Kleines String Format problem

  Alt 29. Mär 2015, 01:48
Und natürlich auch noch Delphi-Referenz durchsuchenFloatToStrF und Delphi-Referenz durchsuchenStr, mit den selben Parametern, wie bei '%*.*f'
Du meintest sicher Delphi-Referenz durchsuchenFormatFloat (Da stand doch eben noch etwas anderes ...)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Kleines String Format problem

  Alt 29. Mär 2015, 01:57
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#8

AW: Kleines String Format problem

  Alt 29. Mär 2015, 03:43
Ohne kann man doch nicht richtig arbeiten, wie du bemerkt hast.

http://www.delphipraxis.net/dp_reference.php
Und ein richtiger Browser erkennt das und bietet dir an diese Referenz als Suchprovider im Browser einzurichten.
Es gab hier auch irgendwo etwas, womit man diese Referenz direkt ins F1 vom Delphi bekommt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 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