%REPLACE(replacement string: source string{:start position {:source length to replace}})
%REPLACE(置換字串:來源字串:開始置換位置:置換長度)
%REPLACE Example
*..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
D*Name++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++
D var1 S 30A INZ('Windsor') VARYING
D var2 S 30A INZ('Ontario') VARYING
D var3 S 30A INZ('Canada') VARYING
D fixed1 S 15A INZ('California')
D date S D INZ(D'1997-02-03')
D result S 100A VARYING
/FREE
result = var1 + ', ' + 'ON';
// result = 'Windsor, ON'
// %REPLACE with 2 parameters to replace text at begining of string:
result = %replace ('Toronto': result);
// result = 'Toronto, ON'
// %REPLACE with 3 parameters to replace text at specified position:
result = %replace (var3: result: %scan(',': result) + 2);
// result = 'Toronto, Canada'
// %REPLACE with 4 parameters to insert text:
result = %replace (', ' + var2: result: %scan (',': result): 0);
// result = 'Toronto, Ontario, Canada'
// %REPLACE with 4 parameters to replace strings with different length
result = %replace ('Scarborough': result:
1: %scan (',': result) - 1);
// result = 'Scarborough, Ontario, Canada'
// %REPLACE with 4 parameters to delete text:
result = %replace ('': result: 1: %scan (',': result) + 1);
// result = 'Ontario, Canada'
// %REPLACE with 4 parameters to add text to the end of the string:
result = %replace (', ' + %char(date): result:
%len (result) + 1: 0);
// result = 'Ontario, Canada, 1997-02-03'
// %REPLACE with 3 parameters to replace fixed-length text at
// specified position: (fixed1 has fixed-length of 15 chars)
result = %replace (fixed1: result: %scan (',': result) + 2);
// result = 'Ontario, California -03'
// %REPLACE with 4 parameters to prefix text at beginning:
result = %replace ('Somewhere else: ': result: 1: 0);
// result = 'Somewhere else: Ontario, California -03'
/END-FREE
文章標籤
全站熱搜
