PDA

View Full Version : führende Null bei Umwandlung von Zahlenwerten



JoergHamacher
05-05-04, 16:07
Hallo.
ich stoße immer wieder auf das Problem, dass bei der Umwandlung von Zahlenwerten in alphanumerische Werte die führenden Nullen in der Zeichenkette dargestellt werden und dann mit umständlichen Feldgruppen-Operationen durch Leerzeichen ersetzt werden müssen. Gibt es dann nicht eine elegantere zeitgemäßere Lösung? Vielen Dank im Voraus.
Jörg

KM
05-05-04, 16:24
Hallo Jörg,

wie wäre es damit ?

C EVALR FELD_A = %CHAR(FELD_N)

Gruß,
KM

Fuerchau
05-05-04, 16:38
Hierfür ist am besten die Funktion %EDTIC(Feld_N:'x'), x = gewünschter Editcode !

B.Hauser
05-05-04, 16:50
Hierfür ist am besten die Funktion %EDTIC(Feld_N:'x'), x = gewünschter Editcode !

Vorsicht EditCode 'X', konvertiert numerische Felder so, dass die führende Nullen angegeben werden und ist damit im Free Format der Ersatz für MOVE.

Ab Release V5R3M0 wird auch die %Trim-Funktion erweitert, so daß beliebige führende und folgende Zeichen entfernt werden können.

Wusstet ihr übrigens, dass SQL diese Funktion schon lange beherrst und damit auch in RPG eingebunden werden kann.

Beispiel:


D MyText S 100 inz('*******Abc')

C/Exec SQL set :MyText = Trim(Leading '*' from :MyText)
C/End-Exec


Statt leading kann auch nur L angegeben werden.
Folgende Zeichen werden mit Trailing oder T entfernt.
Both oder B entfernt führende und folgende Zeichen.

Birgitta

Fuerchau
05-05-04, 17:23
@Birgitta

'x' war nur als Platzhalter gedacht !

Das mit dem SQL ist ja ganz gut, vor allem konnte ich damit im OPM-RPG auch komplexe Formeln berechnen oder auch sonstige Built-In-Funktionen, die RPG nicht hatte bereits verwenden.

Einziger Nachteil: Es wird eine SQL-Umgebung initialisiert, die man aber in Kauf nehmen kann.

B.Hauser
05-05-04, 17:26
Das X als Platzhalter gedacht war, war mir schon klar, aber vielleicht nicht jedem.

Birgitta

JoergHamacher
05-05-04, 17:40
Danke an Alle - ich habe gerade die Varianten ausprobiert - klappt alles bestens! Endlich ist Schluß mit dem blöden Feldgruppen-Gewurschtel!
Jörg