*TRIM - Entfernen von führenden und/oder nachfolgenden Leerstellen

*TRIM (operand

,

LEADING

TRAILING

)

Format/Länge: wie bei operand (A oder B)/DYNAMIC.

Die folgenden Themen werden behandelt:


Funktion

Die Systemfunktion *TRIM dient zum Entfernen von führenden und/oder nachfolgenden Leerstellen aus einer aphanumerischen oder binären Zeichenkette. Der Inhalt von operand bleibt dabei unverändert. Bei Verwendung einer dynamischen Variablen als operand, wird die Länge dieser Variablen dem Ergebnis entsprechend angepasst.

Die Systemfunktion *TRIM kann als operand an jeder Stelle eines Statements angegeben werden, an der ein Operand mit Format A oder B zulässig ist.

Einschränkungen

Für die Verwendung der Systemfunktion *TRIM gelten folgende Einschränkungen:

  • *TRIM darf nicht an Stellen verwendet werden, an denen eine Zielvariable erwartet wird.

  • *TRIM darf nicht in einer anderen Systemfunktion verschachtelt werden.

  • Wenn der Operand eine statische Variable ist, kann man mit *TRIM keine führenden Leerstellen entfernen, weil bei statischen Variablen die verbleibenden nachfolgenden Stellen des Variablenspeichers mit Leerzeichen aufgefüllt werden.

Syntax-Beschreibung

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand C S A     A U B                     ja nein

Syntax-Elementbeschreibung:

*TRIM(operand, LEADING)
Führende Leerstellen entfernen

Bei Angabe des Schlüsselworts LEADING als zweites Argument werden alle führenden Leerstellen aus dem in operand enthaltenen String entfernt.

*TRIM(operand, TRAILING)
Nachfolgende Leerstellen entfernen

Bei Angabe des Schlüsselworts TRAILING als zweites Argument werden alle nachfolgenden Leerstellen aus dem in operand enthaltenen String entfernt.

*TRIM(operand)
Führende und Nachfolgende Leerstellen entfernen

Wenn kein zweites Schlüsselwort als Argument angegeben wird, bewirktTRIM, dass alle führenden und nachfolgenden Leerstellen aus dem in operand enthaltenen String entfernt werden.

Beispiel

Verwendung eines alphanumerischen Arguments

DEFINE DATA LOCAL
/*******************************
/* STATIC VARIABLE DEFINITIONS
/*******************************
1 #SRC  (A15) INIT <'  ab  CD  '>
1 #DEST (A15)

/* FOR PRINT OUT WITH DELIMITERS
1 #SRC-PRN  (A20)
1 #DEST-PRN (A20)

/*******************************
/* DYNAMIC VARIABLE DEFINITIONS
/*******************************
1 #DYN-SRC (A)DYNAMIC INIT <'  ab  CD  '>
1 #DYN-DEST (A)DYNAMIC

/* FOR PRINT OUT WITH DELIMITERS
1 #DYN-SRC-PRN  (A)DYNAMIC
1 #DYN-DEST-PRN (A)DYNAMIC

END-DEFINE

PRINT 'static variable definition:'
PRINT '---------------------------'
COMPRESS FULL ':' #SRC ':' TO #SRC-PRN LEAVING NO SPACE
PRINT ' '
PRINT ' 123456789012345      123456789012345'

MOVE *TRIM(#SRC, LEADING) TO #DEST
COMPRESS FULL ':' #DEST ':' TO #DEST-PRN LEAVING NO SPACE
DISPLAY #SRC-PRN #DEST-PRN '*TRIM(#SRC, LEADING)'

MOVE *TRIM(#SRC, TRAILING) TO #DEST
COMPRESS FULL ':' #DEST ':' TO #DEST-PRN LEAVING NO SPACE
DISPLAY #SRC-PRN #DEST-PRN '*TRIM(#SRC, TRAILING)'

MOVE *TRIM(#SRC) TO #DEST
COMPRESS FULL ':' #DEST ':' TO #DEST-PRN LEAVING NO SPACE
DISPLAY #SRC-PRN #DEST-PRN '*TRIM(#SRC)'

PRINT ' '
PRINT 'dynamic variable definition:'
PRINT '----------------------------'
COMPRESS FULL ':' #DYN-SRC ':' TO #DYN-SRC-PRN LEAVING NO SPACE
PRINT ' '
PRINT ' 1234567890           12345678'

MOVE *TRIM(#DYN-SRC, LEADING) TO #DYN-DEST
COMPRESS FULL ':' #DYN-DEST ':' TO #DYN-DEST-PRN LEAVING NO SPACE
DISPLAY (AL=20) #DYN-SRC-PRN #DYN-DEST-PRN '*TRIM(#SRC, LEADING)'

MOVE *TRIM(#DYN-SRC, TRAILING) TO #DYN-DEST
COMPRESS FULL ':' #DYN-DEST ':' TO #DYN-DEST-PRN LEAVING NO SPACE
DISPLAY (AL=20) #DYN-SRC-PRN #DYN-DEST-PRN '*TRIM(#SRC, TRAILING)'

MOVE *TRIM(#DYN-SRC) TO #DYN-DEST
COMPRESS FULL ':' #DYN-DEST ':' TO #DYN-DEST-PRN LEAVING NO SPACE
DISPLAY (AL=20) #DYN-SRC-PRN #DYN-DEST-PRN '*TRIM(#SRC)'

PRINT ' '
PRINT '":" := delimiter character to show the start and ending of a string!'
END

Ausgabe:

      #SRC-PRN             #DEST-PRN
-------------------- -----------------------

static variable definition:
----------------------------

 123456789012345         123456789012345
:  ab  CD       :       :ab  CD         :     *TRIM(#SRC, LEADING)
:  ab  CD       :       :  ab  CD       :     *TRIM(#SRC, TRAILING)
:  ab  CD       :       :ab  CD         :     *TRIM(#SRC)

dynamic variable definition:
----------------------------

 1234567890              12345678
:  ab  CD  :            :ab  CD  :            *TRIM(#SRC, LEADING)
:  ab  CD  :            :  ab  CD:            *TRIM(#SRC, TRAILING)
:  ab  CD  :            :ab  CD:              *TRIM(#SRC)

':' := delimiter character to show the start and ending of a string!