Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Der gute alte format Befehl (https://www.delphipraxis.net/157105-der-gute-alte-format-befehl.html)

ATS3788 29. Dez 2010 17:28

Der gute alte format Befehl
 
Ich habe z.B. einen integer, 1..59

bekomme ich es mit Format irgendwie gebacken

das anstatt 1,2... es 01,02 ...09,10,11 ausgegeben wird.

Doof zu formulieren diese Frage, Entschuldigt.:oops:

Uwe Raabe 29. Dez 2010 17:33

AW: Der gute alte format Befehl
 
Delphi-Quellcode:
result := Format('%.2d', [Value]);

ATS3788 29. Dez 2010 18:38

AW: Der gute alte format Befehl
 
Ja habe den Punkt vergessen
Danke

Aphton 29. Dez 2010 21:40

AW: Der gute alte format Befehl
 
oder

Delphi-Quellcode:
function TwoDigits(const AValue: Integer; const DefDig: Char = '0'): String;
begin
  if AValue < 100 then
  begin
    Result := IntToStr( AValue );
    if AValue div 10 > 0 then
      Result := DefDig + Result;
  end else // EDIT - Frage diesbezüglich - Siehe unten
    Result := '';
end;

Luckie 29. Dez 2010 21:42

AW: Der gute alte format Befehl
 
Der Code sollte dir eine Warnung vom Compiler ausgeben, weil Result undefiniert ist, wenn AValue größer 100 ist.

Aphton 29. Dez 2010 21:44

AW: Der gute alte format Befehl
 
Hmm, ist es hier nicht sinnlos, da der Resultstring = '' ist?

mkinzler 30. Dez 2010 06:50

AW: Der gute alte format Befehl
 
Nein, denn auch ein Leerstring ist ein Wert

himitsu 30. Dez 2010 07:44

AW: Der gute alte format Befehl
 
Der der String on Delphi automatisch initialisiert wird, kommt hier wohl keine Fehlermeldung.

Obwohl, es bei dem String als Result ein kleines Problem gibt, wodurch eine solche Meldung dennoch gut wäre :stupid:

Ergo, auch das Result sollte man immer initialisieren, selbst wenn der Compiler nicht meckert.

Delphi-Quellcode:
function Add: String;
begin
  Result := Result + '*';
end;

var s: String;

for i := 1 to 10 do
  s := Add;
ShowMessage(s);
Code:
**********

generic 30. Dez 2010 09:00

AW: Der gute alte format Befehl
 
Ich glaube das ATS3788 eine andere Frage hatte.

"Ich habe eine Zahlenfolge von 1 bis 59"
Wie bekomme ich diese Ausgegeben in dem Format:
01,02,03...57,58,59

Als liegt Uwe schon mal richtig:
Zitat:

Zitat von Uwe
Delphi-Quellcode:
result := Format('%.2d', [Value]);

Gesamt:
Delphi-Quellcode:
var
  i: integer;
  s: string;
begin
  s:='';
  for i:=1 to 59 do
  begin
    if i>1 then
      s:=s+',';
    s:=s+Format('%.2d', [i]);
  end;
1 bis 59 sieht stark nach Zeit aus.
Wenn du mit Zeit arbeitest hat Delphi noch unterstützende Funktionen im Bauch. Dann melde dich hier noch einmal.

Matze 30. Dez 2010 09:01

AW: Der gute alte format Befehl
 
@himi: Huch, das war mir jetzt auch neu.
Ich bin zwar nie auf dieses Phänomen gestoßen, aber interessant, dass Result initialisiert wird und beim erneuten Aufruf der Funktion den vorigen Wert behält.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:22 Uhr.
Seite 1 von 2  1 2      

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