-
Alpha Feld -> Alpha Feld ohne führende Nullen
Hallo zusammen,
ich möchte gerne ein Alpha-Feld
mit Inhalt z.B. "0023" umformatieren,
sodass der Inhalt ohne führende Nullen
ist.
Sprich " 23".
Wie mache ich das am besten?
Gruß Dirk
-
Welche Programmiersprache?
-
ILE RPG ist die Programmiersprache.
-
So könnte es gehen:
Code:
D TEXT S 4A INZ('0034')
D SIZE S 2S 0 INZ(%SIZE(TEXT))
D COUNT S 3S 0
D**********************************************************************
C '0' CHECK TEXT COUNT
C COUNT IFEQ *ZERO
C ADD SIZE COUNT
C ENDIF
C SUBST(P) TEXT:COUNT TEXT
C SUB 1 COUNT
C '' CAT TEXT:COUNT TEXT
C SETON LR
-
dow %subst(Text:1:1)='0';
Text = %subst(Text:2);
enddo;
-
Besten Dank.
An CHECK hatte ich gar nicht mehr gedacht.
Habe es mit CHECK und SUBST(P) gelöst.
Gruß Dirk
-
müßte doch eigentlich noch einfacher gehen:
text = %xlate('0':' ':text)
-
Habe es aktuell mit dem CHECK gelöst.
Ich werde aber in der nächsten Woche
die beiden anderen Vorschläge von Euch
auch noch einmal testen und
dann Rückmeldung geben.
Gruß Dirk
-
 Zitat von Khholm
müßte doch eigentlich noch einfacher gehen:
text = %xlate('0':' ':text)
Diese Funktion würde alle Nullen entfernen, aus 00203 würde 2 3 werden.
Ab V5R4 geht es mit %triml(text:'0').
-
Sollen die führenden Nullen durch Leerzeichen ersetzt werden?
-
Hallo,
wenn Du Release V5R3 oder höher hast, kannst Du das Feld wie folgt umsetzen:
PHP-Code:
/Free
EvalR MyNewFld = %TrimR(%TrimL(MyOldFld: '0'))
/End-Free
Eventuell kann auf den %TrimR sogar verzichtet werden, da der Feld-Inhalt durch EVALR bereits rechtsbündig ausgerichtet wird.
Solltest Du noch nicht auf Release V5R3 sein, kannst Du die führenden Nullen mit embedded SQL entfernen und das Ergebnis dann mit EVALR und %TrimR rechtsbündig ausrichten:
PHP-Code:
c/Exec SQL Set :MyNewFld = Trim(Leading '0' from :MyOldFld)
C/End-Exec
C EVALR MyNewFld = %TrimR(MyNewFld)
Birgitta
-
Und noch zwei Loesungen
d TEXT S 4A INZ('0034')
d NUM S 4S 0
* No 1
c eval TEXT = %trim(TEXT)
c dow %subst(TEXT:1:1)='0'
c if %subst(TEXT:1:1)='0'
c eval %subst(TEXT:1:1)=' '
c eval TEXT = %trim(TEXT)
c endif
c enddo
c evalr TEXT = %trimr(TEXT)
* No 2
c move text num
c eval text = %editc(num:'L')
Similar Threads
-
By mikex01 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 19-07-07, 07:18
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 09-02-07, 16:51
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-02-07, 14:26
-
By dino in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 30-11-06, 15:23
-
By TomWaf in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 12-05-06, 09:07
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