![]() |
Numerierung (000+Nummer)
Hallo,
mein erster Beitrag und gleich eine Frage :oops: ich möchte eine Reihe von Dateien durchnumerieren. Dazu soll man auswählen können, wie viele vorangehende Null-Stellen es geben soll. Also z.Bsp. Im Edit-Feld steht4 die Nummerierung sollte dann folgende sein 0001 0002 0003 .... 0010 u.s.w. kann mir jemand dazu einen Denkanstoß geben. Was sollte ich mir angucken um das zu machen. Die normale Numerierung ist ja kein Problem aber die Nullen davor machen mir grad zu schaffen. thx ereetzer |
Hallo und herzlich Willkommen im Forum!
Du musst im prinzip nur schauen, wenn Du den Dateinamen zusammensetzt, ob er in dem Fall 4 Stellen lang ist, wenn nicht, dann eben mit 0en auffüllen. Das würde dann ungefähr so aussehen:
Delphi-Quellcode:
Hoffentlich ist es verständlich was ich meine. ;)
for i := 0 to "LängeDeinesStrings" do
if Length("MeinNeuerDateiname") < 4 then "DateiName" := '0' + DateiName; Grüsse, Daniel :hi: |
Geht auch eleganter (?) mit StringOfChar und dazu gibts hier schon Beispiele...
|
thx at all, ich brauchte nur mal ne Anregung. Hat wunderbar geklappt
mit Eurer Hilfe. hab das jetzt so gemacht:
Code:
ereetzer
for i2 := 0 to StrToInt(Edit9.Text) - 1 do
new := '0'+new; |
Mit StringOfChar würde ich es nicht unbedingt machen. Klar, es mag gehen. Aber noch eleganter ist IMHO der Weg über den Format-Befehl. Der lässt sich vielseitig verwenden, etwa um einen Integerwert zu formatieren:
Delphi-Quellcode:
Das Gute dabei ist die optionale Breitenangabe, die man nutzen kann:
ShowMessage(Format('%d',[1234]));
Delphi-Quellcode:
Durch das .8 wird aus dem "1234" eben ein "00001234".
ShowMessage(Format('%.8d',[1234]));
Theoretisch reicht es also aus, den Wert des Editfeldes zu benutzen, um den Formatstring zusammenzusetzen:
Delphi-Quellcode:
Ich persönlich würde aber den Weg über die Integerkonvertierung gehen um sicherzustellen, dass das Edit tatsächlich eine Zahl enthält:
szFmtStr := '%.' + Edit1.Text + 'd';
Delphi-Quellcode:
szFmtStr := '%.' + inttostr(StrToIntDef(Edit1.Text,4)) + 'd';
ShowMessage(Format(szFmtStr,[1234])); |
halt, stopp :D
da hab ich wohl nen kleinen Gedankenfehler drin. nach den Methoden hab ich ja immer 4 Nullen vorne dran, wenn ich nu aber bei der 10 umzubenennenden Datei angekommen bin soll es ja nicht 000010 sondern 00010 heißen. Ich guck mir Daniels Code nochmal an. ereetzer |
so, nachdem ich mal ganz Ruhig und ohne störende Frau :lol: an die
Sache rangegangen bin, sieht die Sache so aus:
Code:
Wwobei new der neue Dateiname ist, n eine schleife die je Dateiname um 1 hochzählt und n2 Liest den Wert aus einem Edit-Feld der die Anzahl der Positionen darstellt. Nur zu Info, falls es mal einer nachmachen will.
new := Format('%.'+n2+'d'+ ' ' + new, [n]); // +n2+d = Anzahl Stellen aus Edit9
Thx für die Denkanstöße. Auf Format wär ich nie und nimemr gekommen. ereetzer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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