Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Statt 0,1,2 000,001,002 (https://www.delphipraxis.net/15770-statt-0-1-2-000-001-002-a.html)

Spike2k3 3. Feb 2004 21:26


Statt 0,1,2 000,001,002
 
Hoi Hoi,
Wie die Überschrift schon sagt, will ich das meine Variable nicht mit 0 anfängt sondern mit 000 anfängt...
Und dann mit wwi 300 oder so aufhört...
Ich hoffe man kann das irgendwie machen... :)

MrKnogge 3. Feb 2004 21:37

Re: Statt 0,1,2 000,001,002
 
warum füllst du die leeren Stellen nicht einfach beim ausgeben mit 0-ern auf.

gothic_mike 3. Feb 2004 21:43

Re: Statt 0,1,2 000,001,002
 
Moin,

Zitat:

Zitat von Spike2k3
Hoi Hoi,
Wie die Überschrift schon sagt, will ich das meine Variable nicht mit 0 anfängt sondern mit 000 anfängt...
Und dann mit wwi 300 oder so aufhört...
Ich hoffe man kann das irgendwie machen... :)

falls es dir nur beim anzeigen der Zahlen auf die drei stellen ankommt, nimm doch sowas hier:

Delphi-Quellcode:
function AddZero(const Int: Integer; const Len: Integer): String;
begin
  Result:='';
  while (Length(IntToStr(Int)) < Len) do
    Result:=Result+'0';
  Result:=Result + IntToStr(Int);
end;

...

Label1.Caption := AddZero(X, 3);
andernfalls ist es doch egal, ob da noch nullen davor sind...

Spike2k3 3. Feb 2004 21:46

Re: Statt 0,1,2 000,001,002
 
danke...
Ich has so ähnlich gemacht...

Delphi-Quellcode:

try //try-finally hilft, das Objekt auch dann freizugeben, wenn ein Fehler auftritt
    for h:=1 to t do
    begin
      u:=u+1;
      if u<10           then sl.Add('[img]'+Edit1.Text+'00'+inttostr(u)+'.jpg[/img]');
      if u<100 and u>9  then sl.Add('[img]'+Edit1.Text+'0'+inttostr(u)+'.jpg[/img]');
              //irgendwie klappt u<100 and u>9 nicht...weiss wer warum?
      if u>99           then sl.Add('[img]'+Edit1.Text+inttostr(u)+'.jpg[/img]');
           end;

Mirilin 3. Feb 2004 21:55

Re: Statt 0,1,2 000,001,002
 
:hi:

:gruebel:

irgendwie so sollte es doch auch klappen.

Delphi-Quellcode:
const
  s = '%.3d';
begin
  Caption := format(s,[1]);
mfg Tobias

choose 4. Feb 2004 09:02

Re: Statt 0,1,2 000,001,002
 
Hallo Spike2k3,

ich finde Mirilins Idee auch klasse und möchte Dir noch einmal der Vollständigkeit halber eine Lösung mit Format zeigen, weil Du bei der Erzeugung von Stringausgaben wahrscheinlich häufiger auf ähliche Probleme stoßen wirst (sieh in der OH unter Format-Strings nach). Ich verwende dieselben Variablenbezeichnungen wie Du:
Delphi-Quellcode:
for h:= 1 to t do
  sl.Add(Format('[img]%s%.3d.jpg[/img]', [Edit1.Text, u]);


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 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