Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

REPLACE( ) Teilstring überschreiben oder ersetzen

&pagelevel(3)&pagelevel

Anwendungsgebiet: String-Bearbeitung

Die Funktion REPLACE( ) überschreibt oder ersetzt einen Teilstring innerhalb eines Strings durch einen anderen String. Dabei kann der ursprüngliche String sowohl länger als auch kürzer werden.

Format

REPLACE( )

STRING = string_ausdruck1

,START = 1 / zahl

,REPLACE = string_ausdruck2

,SUPPRESSED-LENGTH = *REPLACE-LENGTH / zahl

Ergebnistyp

STRING

Eingabeparameter

STRING = string_ausdruck1
Bezeichnet den String, in dem ein Teilstring ersetzt werden soll.

START = 1 / zahl
Bezeichnet die Position, ab der der (Eingabe-)String überschrieben wird; „zahl“ ist ein positiver Integer-Wert bzw. ein arithmetischer Ausdruck, der zu einem positiven Integer-Wert ausgewertet wird.

REPLACE = string_ausdruck2
Bezeichnet den String, der ab der Startposition eingesetzt wird.

SUPPRESSED-LENGTH =
Gibt an, ob string_ausdruck2 Teile des (Eingabe-)Strings überschreibt oder ersetzt.

SUPPRESSED-LENGTH = *REPLACE-LENGTH
Ab der bei START=.. angegebenen Position werden die folgenden Zeichen durch string_ausdruck2 überschrieben (in der Länge von string_ausdruck2). Gibt es im ursprünglichen String nicht genügend Zeichen zum Überschreiben, werden die restlichen Zeichen von string_ausdruck2 angefügt.

SUPPRESSED-LENGTH = zahl
Bezeichnet die Anzahl von Zeichen, die ab der bei START=.. angegebenen Position unterdrückt werden und für die string_ausdruck2 eingesetzt wird. Ist die angegebene Anzahl ungleich der Länge von string_ausdruck2, hat der Ergebnis-String nicht mehr die gleiche Länge wie der ursprüngliche String.

Ergebnis

Geänderter String

Fehlermeldung

SDP0412   START-POSITION AUSSERHALB MOEGLICHEN BEREICHS
SDP0413   NICHT ZULAESSIGE LAENGENANGABE

Beispiele

/A = 'ABCDEFGHIJ'
/B = REPLACE(STRING = A, REPLACE = '**')
/SHOW-VARIABLE A
A = ABCDEFGHIJ
/SHOW-VARIABLE B
B = **CDEFGHIJ
/C = 10
/B = REPLACE(STRING = A, START = C, REPLACE = 'KLMN')
/SHOW-VARIABLE B
B = ABCDEFGHIKLMN
/B = REPLACE(STRING = A, START = 0, REPLACE = '**')
SDP0412 START-POSITION AUSSERHALB MOEGLICHEN BEREICHS
SDPO431 FEHLER 'SDPO412' IN BUILTIN-FUNCTION 'REPLACE'
SDP0239 FEHLER WAEHREND DER AUSWERTUNG DER RECHTEN SEITE DER ZUWEISUNG
/A = REPLACE(STRING = A, REPLACE = '****')
/SHOW-VARIABLE A
A = ****EFGHIJ

Die letzte Zuweisung an die Variable B führt zum Fehler SDP0412, da bei START kein korrekter Wert angegeben wurde.

/WHILE (INDEX(TESTSTRING,X'00') > 0)
/    TESTSTRING = REPLACE(TESTSTRING,INDEX(TESTSTRING,X'00'),X'40') 
/END-WHILE 

Innerhalb der Variablen TESTSTRING werden alle X’00’ durch Leerzeichen (X’40’) ersetzt.

Beispiele mit dem Operanden SUPPRESSED-LENGTH=..

/A = 'I am the king of the replace()'
/B1= 'developer'              "REPLACE"
/B2 = REPLACE (A,10,B1,4)     " 10th position is 'k' "
/SHOW-VAR B2
B2 = I am the developer of the replace()
/C1 = 'not '                  "INSERT"
/C2 = REPLACE (A,6,C1,0)      " 6th position is 't' "
/SHOW-VAR C2
C2 = I am not the king of the replace()
/D1 = 'replacement'           "OVERWRITE (like before)"
/D2 = REPLACE (A,22,D1)       " 22th position is 'r' "
/SHOW-VAR D2
D2 = I am the king of the replacement