-
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')
-
Na das nenne ich ja mal eine übertriebene Sicherheit:
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
Im DOW wird ja bereits geprüft und warum soll ich was ersetzen, wenn ich es anschließend wieder wegschmeiße ?
Der %EDITC ist da schon eher ein Ansatz, vervollständigt könnte das dann so aussehen:
text = %char(%dec(TEXT:4:0)); // linksbündig
evalr text = %char(%dec(TEXT:4:0)); // rechtsbündig
-
Danke! Ich habe vergessen, die Zeile mit "If %subst..." loeschen.
-
Besten Dank für alle Tipps
Hallo zusammen,
erstmal besten Dank für alle Tipps.
Nachdem ich alle Varianten ausprobiert
habe, sind 2 Varianten für mich als
Lösung dabei.
1.) DOW %SUBST und
2.) Exec SQL Set
Da ich nur die führenden Nullen entfernt
haben möchte konnte ich mit
%Trim, %xlate und CHECKR nichts machen, da hier alle Nullen entfernt wurde, bzw. ich nicht das
neuste Release zur Verfügung habe.
Gruß Dirk
-
Hallo,
führende Nullen in Textfeldern entferne ich so:
evalr MeinText = %char(%int(MeinText))
Thommy
-
@Thommy
Hoffentlich steht in MyText nie etwas anderes als Ziffern drin!
Schon wenn das Feld komplett *Blank wäre, bekommst Du ein Problem.
... und %Char richtet linksbündig aus.
... Blanks zwischen den Ziffern werden gnadenlos entfernt.
... und Dezimal-Trennzeichen und folgende Ziffern werden gnadenlos abgeschnitten.
Birgitta
-
@Birgitta
die Frage des Threaderstellers war, wie ein mit Zahlen gefülltes Alphafeld ohne Vornullen dargestellt werden kann. Darauf habe ich mich selbstverständlich bezogen. Im Übrigen stellt mein Vorschlag das Ergebniss durchaus rechtsbündig, ganz links steht EVALR
Thommy
Similar Threads
-
By mikex01 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 19-07-07, 08:18
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 09-02-07, 17:51
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 08-02-07, 15:26
-
By dino in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 30-11-06, 16:23
-
By TomWaf in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 12-05-06, 10: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