PDA

View Full Version : Führende Nullen



grunzheini
11-02-11, 13:29
Ich suche die einfachste Methode, um folgendes zu lösen.

Ich habe ein 10-stelliges, nummerisches Feld aus einer Datei, welches den Wert 1000 hat
Und ich habe folgenden String in einem CHAR-Feld 'DATEI.nnnnn.txt'

Ich möchte nun gerne die 1000 ind den String einbauen, mit einer führenden 0

Ergebniss sollte sein:
DATEI.01000.txt

Die 1000 ist eine Laufende Nummer, die bis zu 5 Stellen haben kann.

Gibt es hier eine Built-In Funktion oder muss ich dass, so wie ich das derzeit mache mit Verbiegungen anstellen.
Ich Habe mir ein weiteres CHAR-Feld gemacht, welches ich mit '0000000000' initialisiere und dann mit MOVE die 1000 reinbaue -> '0000001000'
Mit einem %SUBST nehme ich mir dann die '01000' raus und baue sie ind den String rein. Aber das kommt mir recht umständlich vor...
Oder ich sitze schon zu lange an diesem Problem...:confused:

Fuerchau
11-02-11, 13:31
Wie wärs mit %subst(%editc(MYFIELD:'X'):6:5) ?

Pikachu
11-02-11, 14:00
Mach das Zeichenfeld genau 5 Stellen lang, dann brauchst du kein %SUBST().

grunzheini
11-02-11, 14:03
Ich hab das jetzt mal ausprobiert.

Aber wie geht ein %SUBST + %EDITC, wenn das Feld DEC ist.

Ich bekomme entweder den fehler, dass ein %SUBST bei eine numerischen Feld nicht geht oder dass ein %EDITC bei einem CHAR-Feld nicht geht...

grunzheini
11-02-11, 14:06
Ich nehm alles zurück!!!!
Es geht doch!!!

Danke, das war die Lösung!

grunzheini
11-02-11, 14:08
Das Feld konnte ich nicht 5 Stellen machen, da es universell ist und manchmal die Länge der Lfd-Nummer variert.

Deswegen hab ich bei dem %SUBST auch nicht :6:5 , sondern Variablen.

Aber das passt jetzt!

prsbrc
16-02-11, 06:45
Ich mache solche Sachen meistens mittels EvalR



EvalR $Feld='0000000000'+%Char($LfdNum)Ist zwar keine 100%ige Free-Lösung aber funktioniert :D