PDA

View Full Version : Substring aus nummerischen Feld



Seiten : [1] 2

beegee
03-04-08, 13:46
Hallo Forum,

gibt es die Möglichkeit in RPG mit einer Built-In-Function eine gewisse Anzahl von Stellen aus einem nummerischen Feld zu extrahieren ?

Konkret: ich möchte aus einem 8/0 Num-Feld, den Wert der Stellen 3 und 4 haben.

Lg

Pikachu
03-04-08, 13:56
Siehe hier (http://www.newsolutions.de/forum-systemi-as400-i5-iseries/newsboard-programmierung/13276-anfaengerfrage-num-feld-kuerzen-rpg-free.html).

Khholm
03-04-08, 13:56
in Free Form geht das so:

string = %subst(%editc(zahl):'X'):3:2);

beegee
03-04-08, 13:57
in Free Form geht das so:

string = %subst(%editc(zahl):'X'):3:2);

Nicht in Freeform, sondern "normal" und das Ergebnis soll kein String sein, sondern ein nummerisches Feld

schmidde
03-04-08, 14:22
d Struc ds
D Zahl 8s 0
D Teil 2s 0 overlay(Zahl:3)

Pikachu
03-04-08, 14:25
EVAL NUM2 = %ABS(%REM(%INT(NUM/100):100))

schmidde
03-04-08, 14:33
EVAL NUM2 = %ABS(%REM(%INT(NUM/100):100))


Hallo Pikachu,

Du hast 2 Nullen vergessen:

EVAL NUM2 = %ABS(%REM(%INT(NUM/10000):100))

Pikachu
03-04-08, 14:46
Kommt drauf an, welche Stellen 3 und 4 gemeint sind. ;)

Fuerchau
03-04-08, 14:49
Naja, es gibt wie immer viele Wege:

eval num2 = %dec(%subst(%editc(mynum:'X'):Ab:Len):Len:0);

Ab = ab Stelle
Len = Anzahl Stellen

B.Hauser
03-04-08, 15:13
eval num2 = %dec(%subst(%editc(mynum:'X'):Ab:Len):Len:0);

Ab = ab Stelle
Len = Anzahl Stellen

Len darf allerdings keine Variable sein, allenfalls eine Konstante, da die Werte für die Parameter 2 und 3 in der Built-In-Function %DEC() zur Compile-Zeit bekannt sein müssen.

Birgitta