[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2004
    Beiträge
    79

    %size oder %len

    Hallo *all,

    ich hab immer noch nicht genau den Unterschied zwischen %size und %len begriffen. Tststs....

    Nehmen wir an, ich habe ein 10-stelliges Alphafeld mit Inhalt 'ABC'.

    Wie bekomme ich heraus, wie lange das Alphafeld (an sich) ist und wie bekomme ich heraus wie lange der belegte Teil des Feldes ist?

    Vielen Dank für Antworten.

    Gruß
    coolie

  2. #2
    Registriert seit
    Dec 2002
    Beiträge
    301
    %SIZE gibt die Anzahl der Bytes an, die eine Variable belegt. %LEN gibt eben die Länge in Stellen an, die eine Variable belegt. Anzahl Bytes und Anzahl Stellen können differieren.
    Die Länge eines Alphafeldes ermittelt sich mit %SIZE(Feld) oder %LEN(Feld). Bei alphanumerischen Feldern ist die Anzahl der Bytes immer gleich der Anzahl Stellen. Den tatsächlich verwendeten Teil eines Alphafeldes ermittelt man mit %LEN(%TRIMR(Feld)).

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Bei fest definierten Stellen liefer %size und %len das selbe Ergebnis.
    Der Unterschied gilt nur für Felder mit varying-Attributen.
    %size liefert die definierte Länge, %len die aktuelle Länge.

    Möchte ich die Länge des Inhaltes eines festen Feldes wissen, so gibt es 2 Möglichkeiten:
    %len(%trim(feld)) => eliminiert führende und hinten stehende Leerzeichen und gibt dann die Länge der relevanten Information.
    %checkr(' ':Feld:1) liefert die letzte Position eines Zeichens <> Blank.

    Daran kann man auch den Unterschied sehen.
    Führende Leerzeichen werden ggf. benötigt.

    Allerdings ist bei variablen Feldern zu beachten:
    %len liefert die aktuelle Länge incl. Leerzeichen !
    %checkr funtioniert auch bei variablen Feldern.
    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

  4. #4
    Registriert seit
    Jan 2003
    Beiträge
    746
    entfernt - die Kollegen waren schneller (und besser ;-)

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    @Robert
    %scan kannst du aber nur verwenden, wenn keine Leerzeichen zwischen den Daten erlaubt sind, sonst gehen dir Daten beim %subst verloren. Ausserdem liefert %scan 0, wenn kein Leerzeichen vorhanden ist.
    %checkr wäre da besser
    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

  6. #6
    Registriert seit
    Jan 2003
    Beiträge
    746
    @Fuerchau

    genau das ist mir im Moment des sendens aufgegangen, Danke!

Berechtigungen

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