[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Dec 2014
    Beiträge
    310
    Zitat Zitat von Dominic K. Beitrag anzeigen
    ..
    Ich hatte zuerst an %len gedacht, aber das gibt mir anscheinend nur die Länge der deklarierten Variable zurück, aber nicht die Länge des Inhaltes.
    ...
    Die EINGEGEBENEN Zeichen mit "%LEN" ermitteln geht so:
    ANZAHL =%LEN(%TRIM(Feldname))

    Aber nur bei Alpha.
    Wenn numerisch, dann hat DKSPROFI in seiner ersten Antwort ja schon beantwortet
    (if... < 10000000)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Egal ob Numerisch oder Alpha:
    %len(%trim(%char(Feld)))
    Bei Zeichenfeldern gibts keine Wandlung, bei numerischen Feldern gibts Edit ohne Vornull.
    Aber eine typgerechte Prüfung ist dem immer vorzuziehen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    PHP-Code:
    D                 DS
    DNUMMER                          8S 0 INZ
    (12345678)
    DSTELLE1                         1A   OVERLAY(NUMMER)
    D
    C     STELLE1       IFNE      
    '0'
    C                   ENDIF 

  4. #4
    Registriert seit
    Sep 2016
    Beiträge
    45
    Ah ok

    Mit Trim wird also der tatsächliche Inhalt gezählt. Hatte das anders verstanden.
    Hätte ich vllt. erst einmal praktisch testen sollen >.<

    Danke für die Hilfe und allen einen guten Rutsch ins neue Jahr!

  5. #5
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    Mit %TRIM werden die Enden gestutzt.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Zu unterscheiden sind die Funktionen
    %trim(): Blanks am Anfang und Ende entfernen
    %triml(): Blanks am Anfang
    %trimr(): Blanks am Ende
    Das Ergebnis ist ein Varying-Feld, dessen Länge mit %len() abgefragt werden kann.

    Übrigens %checkr() liefert die 1. Position eines ungültigen Zeichens aus einer Liste.
    %checkr(' ':Feld) liefert also die Position des letzten Zeichens vor Blank und somit ebenso die Länge des Inhalts ohne Leerzeichen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Sep 2016
    Beiträge
    45
    @Pikachu : Das weis ich :-) dachte nur nicht das dies mit %len koppelbar ist und dann der tatsächliche inhalt zurückgegeben wird. Habe die Beispiele in der Reference zu %len nicht korrekt gelesen.

  8. #8
    Registriert seit
    Feb 2011
    Beiträge
    48
    Du könntest auch das DDS Field-Keyword RANGE verwenden:

    00080A FIELD 8 0B 2 2RANGE(10000000 99999999)

    Einen Guten Rutsch ins neue Jahr
    GJV

  9. #9
    Registriert seit
    Sep 2016
    Beiträge
    45
    Oha!
    Das ist perfekt! Kein neuer Code ins Programm, einfach direkt im DDS abfangen.

    Vielen Dank dafür : D

Similar Threads

  1. Langsam wird es weniger...
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 16-12-17, 13:28
  2. Joblog verhindern
    By dibe in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-08-16, 15:21
  3. Textfeld mit 1300 Stellen in mehrere Felder a 60 Stellen in RPG oder SQL
    By Stephan70 in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 21-12-15, 08:12
  4. Antworten: 3
    Letzter Beitrag: 11-02-15, 17:13
  5. Tabulatorsteuerung in Displayfile
    By Daechsle in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 05-06-14, 15:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •