[Gelöst] Präfix je nach Stringlänge füllen

12. Dezember 2011 13:25

Hi,
gibt es noch andere Programmierungsidee für folgende Beispiel?
Ähnliche Navision C/AL Befehl wie PADSTR?

Case STRLEN(Text) OF
1: Text := '000' + Text;
2: Text := '00' + Text;
3: Text := '0' + Text;
END;
Zuletzt geändert von navsyst am 12. Dezember 2011 15:04, insgesamt 1-mal geändert.

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 13:35

Code:
WHILE STRLEN(Text) < 4 DO
  Text := '0' + Text;

müsste zum gleichen Ergebnis führen, ist aber etwas eleganter, wie ich finde.

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 13:39

Hallo Tim,
Danke. Deine Lösung gefällt mir! Je kürzer die Programmierungszeile desto schöner :)

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 13:45

Code:
WHILE STRLEN(Text) < 4 DO
  Text := INSSTR(Text,'0',1);

Das sieht noch ein bißchen schicker aus, könnte aber langsamer sein als die erste Variante.

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 14:03

Code:
Text := COPYSTR('0000',1,4 - STRLEN(Text)) + Text;

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 14:20

Kowa hat geschrieben:
Code:
Text := COPYSTR('0000',1,4 - STRLEN(Text)) + Text;


Diese Idee ist noch genialer!!! Danke.

@Tim: Danke für die zweite Idee mit INSSTR. Kann man auch gut gebrauchen.

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 14:28

Kowa hat geschrieben:
Code:
Text := COPYSTR('0000',1,4 - STRLEN(Text)) + Text;

Mit dem guten Glauben das niemand ein Text länger als 4 Zeichen eingibt? ;-)

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 14:43

JanGD hat geschrieben:
Kowa hat geschrieben:
Code:
Text := COPYSTR('0000',1,4 - STRLEN(Text)) + Text;

Mit dem guten Glauben das niemand ein Text länger als 4 Zeichen eingibt? ;-)


Selbtsverständlich :)

Re: Präfix je nach Stringlänge füllen

12. Dezember 2011 14:50

Hallo,

um sicher zu gehen kann man es vorher abfangen.

Code:
if STRLEN(Text) >= 4 then
   Error('Text darf nicht mehr als 3 Zeichen enthalten.');



Gruß
Aydin