PDA

View Full Version : SCAN bei ILE RPG ???



HoScHiE
05-09-01, 15:47
Hallo,

ich benötige mal kurz Eure Hilfe.

Ich habe ein Feld "Feld1" 8-stellig Alpha.
Dort stehen nr drinnen die mind. 4-stellig sind. also so z.B. '00009999'.
4-stellig sind die Nrn immer.

Nun möchte ich gerne die führenden Nullen abgeschnitten haben und den Rest "LINKSBÜNDIG" in das Feld2 stellen.

Ich habe es geschafft aber der Source Code ist so ca. 20 Zeilen lang.

Kennt einer ne kürzere Version wie man das machen kann, denn ich habe mir dabei echt einen abgebrochen und einige Hilfsfelder benutzt.

Ich denke mal en richtiger ILE - Freak kennt sich damit aus.

Danke,
HoSchie

Flappes
05-09-01, 17:15
hi hoschie

glaube kürzer geht es nicht mehr ... ich gehe mal von aus das du dein ausgangsfeld auch in nummerischer form hast ... wenn nicht gibs ja noch den move befehl .. ;o)

eval feld2 = %trim(%editc(feld1:'3'))

feld1 --> nummerisch
feld2 --> alpha
'3' --> Editiercode

hoffe ich konnte helfen ...

gruss christian

B.Hauser
05-09-01, 17:31
Hier das Beispiel:

D $$Nummer S 1024A varying D $$Start S 5I 0
*
D $lfd_Nr S 8 inz('00009999')

C eval $$Nummer = $lfd_Nr
*
* Ermitteln 1. von 0 versch. Stelle
C '0' check $$Nummer $$Start
*
* Ermitteln Nummer ohne führende Nullen
C if %Found
C eval $$Nummer = %Subst($$Nummer:
C $$Start:
C %len($lfd_Nr)
C -$$Start+1)
C endif

Anmerkung : $Lfd_Nr. ist die umzusetzende Nummer.
Die Ausgabe erfolgt im Feld $Nummer mit variabler Satz-Länge --> nur der Wert 9999 steht noch in diesem Feld.

Ich hoffe Du kommst damit klar

B. Hauser

HoScHiE
06-09-01, 16:37
Super --- das war klasse.

Danke