AGB  ·  Datenschutz  ·  Impressum  







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

Numerierung (000+Nummer)

Ein Thema von ereetzer · begonnen am 2. Apr 2003 · letzter Beitrag vom 2. Apr 2003
Antwort Antwort
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#1

Numerierung (000+Nummer)

  Alt 2. Apr 2003, 17:28
Hallo,

mein erster Beitrag und gleich eine Frage

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
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 2. Apr 2003, 17:36
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:
for i := 0 to "LängeDeinesStrings" do
  if Length("MeinNeuerDateiname") < 4 then
    "DateiName" := '0' + DateiName;
Hoffentlich ist es verständlich was ich meine.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#3
  Alt 2. Apr 2003, 17:51
Geht auch eleganter (?) mit StringOfChar und dazu gibts hier schon Beispiele...
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#4
  Alt 2. Apr 2003, 18:07
thx at all, ich brauchte nur mal ne Anregung. Hat wunderbar geklappt
mit Eurer Hilfe.

hab das jetzt so gemacht:

Code:
for i2 := 0 to StrToInt(Edit9.Text) - 1 do
new := '0'+new;
ereetzer
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5
  Alt 2. Apr 2003, 18:15
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:
ShowMessage(Format('%d',[1234])); Das Gute dabei ist die optionale Breitenangabe, die man nutzen kann:
ShowMessage(Format('%.8d',[1234])); Durch das .8 wird aus dem "1234" eben ein "00001234".

Theoretisch reicht es also aus, den Wert des Editfeldes zu benutzen, um den Formatstring zusammenzusetzen:
szFmtStr := '%.' + Edit1.Text + 'd'; Ich persönlich würde aber den Weg über die Integerkonvertierung gehen um sicherzustellen, dass das Edit tatsächlich eine Zahl enthält:
Delphi-Quellcode:
szFmtStr := '%.' + inttostr(StrToIntDef(Edit1.Text,4)) + 'd';
ShowMessage(Format(szFmtStr,[1234]));
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#6
  Alt 2. Apr 2003, 18:21
halt, stopp

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
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#7
  Alt 2. Apr 2003, 20:19
so, nachdem ich mal ganz Ruhig und ohne störende Frau an die
Sache rangegangen bin, sieht die Sache so aus:

Code:
new := Format('%.'+n2+'d'+ ' ' + new, [n]); // +n2+d = Anzahl Stellen aus Edit9
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.

Thx für die Denkanstöße. Auf Format wär ich nie und nimemr gekommen.

ereetzer
  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 19:46 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