2009 Jul 23 5:20 AM
Hi
I have an requirement where i have to replace one character with space. Suppose in 'SAPISGREAT' word ' I ' shoud get replace with space liek SAP SGREAT. The word might change dynamically.So whenever ' I ' comes in the word I sould replace with space. When I use REPLACE commnand for the smae the word is truncating like SAPSGREAT. 'I' is not coming but no space.Any help greatly appricated.
Rgards
Raj.
Hi Rajitha,
the best way to replace the string dynamically with any char is using FM STRING_REPLACE
just give the pattern i.e 'I' in your case
substitute as ' ' and Text as the string..
Its Easy!!
Best of Luck !!
Regards
Ravi
2009 Jul 23 5:35 AM
Try as follows:
FORM ZSTRING_CONV.
DATA: STR_LEN LIKE SY-FDPOS,
RSTR_LEN LIKE SY-FDPOS,
OFF LIKE SY-FDPOS.
DATA: IDX LIKE SY-FDPOS, "mn B20K054003
CL LIKE SY-FDPOS. "mn B20K054003
DATA: RSTRING(40).
DATA: STRING(40). " value 'A,N,I,L'.
data: n_char(1).
FIELD-SYMBOLS: <NLS_CHAR>. "mn B20K054003
field-symbols: <string>, <rstring>.
MOVE ttab-rec TO STRING.
MOVE SPACE TO RSTRING.
STR_LEN = STRLEN( STRING ).
DESCRIBE FIELD RSTRING LENGTH RSTR_LEN.
IF RSTR_LEN < STR_LEN. RAISE TOO_SMALL. ENDIF.
WHILE IDX < STR_LEN. "mn B20K054003
ASSIGN STRING+IDX(*) TO <NLS_CHAR>. "mn B20K054003
IF SY-LANGU EQ '2'. "mn B20K054003
CALL FUNCTION 'NLS_THAI_CHARLEN' "mn B20K054003
EXPORTING "mn B20K054003
THAI_STRING = <NLS_CHAR> "mn B20K054003
CHANGING "mn B20K054003
THAI_CHARLEN = CL. "mn B20K054003
ELSE. "mn B20K054003
CL = CHARLEN( <NLS_CHAR> ). "mn B20K054003
ENDIF. "mn B20K054003
IF IDX NE 0. "mn B20K054003
SHIFT RSTRING RIGHT BY CL PLACES."mn B20K054003
ENDIF. "mn B20K054003
IF STRING+IDX(CL) CA 'I'.
STRING+IDX(CL) = ''.
ENDIF.
RSTRING0(CL) = STRINGIDX(CL). "mn B20K054003
IDX = IDX + CL. "mn B20K054003
ENDWHILE. "mn B20K054003
ENDFORM.
2009 Jul 23 5:36 AM
Hi,
Try this,
DATA: T(10) VALUE 'SAPISGREAT',
STRING LIKE T,
STR1(1) VALUE 'I',
STR2(1) VALUE ' '.
STRING = T.
REPLACE STR1 WITH STR2 INTO STRING.
WRITE / STRING.Hope this helps.
Thanks,
Sri.
2009 Jul 23 5:38 AM
2009 Jul 23 5:39 AM
Hello
Try this:
DATA: XTEXT(20).
DATA: CH1(1),
CH2(1).
CH1 = 'I'.
CH2 = ' '.
XTEXT = 'SAPISGREAT'.
SEARCH XTEXT FOR CH1.
IF SY-SUBRC = 0.
REPLACE CH1 WITH CH2 INTO XTEXT.
ENDIF.
WRITE XTEXT.
2009 Jul 23 5:42 AM
Hi,
You can use the following replace statement
data: var type string.
var = 'SAPISGREAT'.
REPLACE ALL OCCURENCES OF 'I' IN var WITH space into var.
Regards,
Vik
2009 Jul 23 5:45 AM
hi,
use split starement to split at the specific point.
and the comncatenate it back with the seperated by space.
DATA : var1(20) type c,
var2(20) type c,
var3(20) type c,
var4 type i.
VAR!1 = SAPISGREAT.
split var1 into var2 var3 at i.
var4 = srtlen(var2.).
var2 = var2 +0(var4-1).
concatenate var2 var3 into var1 seperated by space.
hope this helps
Regards
RItesh J
2009 Jul 23 6:28 AM
Hi,
Try this
DATA: name(20) TYPE c VALUE 'SAPISGREAT'.
TRANSLATE name using 'I '.
WRITE name.
2009 Jul 23 6:32 AM
Hi Rajitha,
the best way to replace the string dynamically with any char is using FM STRING_REPLACE
just give the pattern i.e 'I' in your case
substitute as ' ' and Text as the string..
Its Easy!!
Best of Luck !!
Regards
Ravi
2009 Jul 23 6:52 AM
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |