-
Konvertierung DEC nach CHAR
Hallo allerseits,
ich steh gerade auf dem Schlauch.
Wie konvertiere ich eine Zahl in eine Zeichenkette mit führenden "0" so wie DIGITS bei SQL?
Und das nicht per MOVE sondern als Funktion in RPGLE.
Bsp
wenn x dec(5,0) den Wert 42 hat, soll
eval s = funktio(x) "00042" geben.
MOVE oder DS möchte ich nicht nehmen, da das Programm dadurch unhandlich wird.
Hat jemand eine Idee?
Gruß
Christian
-
Moin
PHP-Code:
d Alpha s 5 d NumFeld s 5 0 c Eval Alpha = %EditC( NumFeld : 'X' )
Das 'X' ist nirgendwo dokumentiert. (ich habs bis jetzt jedenfalls net gefunden)
Gruß Ronald
-
Herzlichen Gückwunsch zu meinem 5000. Beitrag.
Falls du Interesse an der Stunde hast, ruf einfach an. Ich rufe auch gerne zurück.
Die Lösung, die ich auch benötigte, war leider nicht ganz trivial, dann allerdings ganz einfach.
%editw ist hier die Lösung !
evalr s = %editw(x:'0_____');
(_ = Leerzeichen)
Wo ist der Trick ?
Um führende Nullen zu bekommen, kann man mit der "0" die Signifikanz einschalten, allerdings gilt dies erst für das nachfolgende Zeichen, so dass diese Stelle trotzdem leer bleibt.
Die nachfolgenden Leerzeichen (pro Digit eins) bereiten den Wert nun auf, der allerdings genau 1 Stelle zu groß ist !
Das wird nun durch den "evalr" (rechtsbündig) wieder ausgeglichen.
Sollte das Zielfeld aus irgendwelchen Gründen doch größer sein, muss man sich mit %subst behelfen:
eval s = %subst(%editw(x:'0_____'):2:5);
@Ronald
Ich benötigte eine Aufbereitung in der Form "+0000000.00", die in COBOL ja standard ist, in RPG aber Schwierigkeiten bereitet. Dazu funktioniert dann mein obiger Weg.
-
Hallo cbe,
hast du es schon mal mit der Buildin-Funktion %editc versucht?
Beispiel:
Ergebnis = %editc(NumFLD:'X')
Im Ergebnis sollte jetzt linksbündig das gewünschte Ergebnis stehen.
Viel Erfolg
mdhl
-
@furchau
okay, wenns mit vorzeichen sein soll, dann mit %EDITW.
ohne vorzeichen finde ich %EDITC halt schöner!
Gruß Ronald
-
Klasse, den Parameter "X" bei editc hatte ich nicht gefunden, jetzt gehts, vielen Dank!
@fuerchau: das kommt gleich in meine Tip-Sammlung, brauche ich bestimmt mal.
-
 Zitat von Fuerchau
Herzlichen Gückwunsch zu meinem 5000. Beitrag.
wirklich beeindruckend!
Du lässt uns aber auch keine Chance, Dich einzuholen, weil Du immer so flott eine Antwort hast ;-)
-
wie wäre es mit xlate und eine umsetzung von blanks nach '0' ?
Mach ich zumindest so, imo die einfachste lösung.
Similar Threads
-
By codierknecht in forum NEWSboard SAP
Antworten: 32
Letzter Beitrag: 09-02-18, 13:00
-
By agutenbru in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 22-08-06, 16:00
-
By Wissbegierig in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 29-11-05, 13:11
-
By mott in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 15-11-04, 09:20
-
By spiceisnice in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 01-11-04, 21:01
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks