‎2009 Jan 08 12:44 PM
hi abapers,
i need numbers only into my variable from a string
Like string is abd1234*67
I need 123467 only from this for my use.
‎2009 Jan 08 12:47 PM
Hi Amit,
Check the code
PARAMETER:
p_srstr(10) TYPE c.
DATA:
v_dest(10) TYPE c,
temp1 TYPE c,
temp2 TYPE i VALUE 0,
length TYPE i.
length = STRLEN( p_srstr ).
DO length TIMES.
temp1 = p_srstr+temp2(1).
IF temp1 CA '0123456789'.
CONCATENATE v_dest temp1 INTO v_dest.
ENDIF.
CLEAR temp1.
ADD 1 TO temp2.
ENDDO.
WRITE: v_dest.Regards,
Anirban
‎2009 Jan 08 12:51 PM
Hi,
Just check this code:
DATA a TYPE string VALUE 'abd1234*67'.
DATA c TYPE i.
DATA d TYPE c.
DATA e TYPE i VALUE 0.
c = STRLEN( a ).
DO c TIMES.
d = a+e(1).
e = e + 1.
IF d CA '0123456789'.
WRITE d no-gap.
ENDIF.
ENDDO.Edited by: Nitesh Kumar on Jan 8, 2009 6:28 PM
‎2009 Jan 08 1:05 PM
try this in ECC6.
data : v_num(10) type N.
data : v_string(10) type c value 'abd1234*67'.
v_num = v_string.
write 😕 v_num.
‎2009 Jan 08 1:07 PM
This is a different aproach,hope you like it.
DATA: str TYPE string VALUE 'aBd1234*67',
repl TYPE string.
INITIALIZATION.
repl = '* a b c d e f g h i j k l m n o p q r s t u v w x y z '.
START-OF-SELECTION.
TRANSLATE str TO LOWER CASE.
TRANSLATE str USING repl.
CONDENSE str NO-GAPS.
WRITE str.
‎2009 Jan 08 1:22 PM
Hi,
Declare another variable of type i and assign the string variable ot it..then it works..
Regards
Vasavi kotha
‎2009 Jan 08 2:44 PM
You could use a regex
DATA:
g_c(80) TYPE c VALUE 'abd1234*67',
g_n(80) TYPE c,
g_i TYPE i,
g_t_mr TYPE match_result_tab,
g_s_mr TYPE match_result.
FIND ALL OCCURRENCES OF REGEX '(\d+)' IN g_c RESULTS g_t_mr.
IF sy-subrc = 0.
LOOP AT g_t_mr INTO g_s_mr.
CONCATENATE g_n g_c+g_s_mr-offset(g_s_mr-length) INTO g_n.
ENDLOOP.
g_i = g_n.
ENDIF.
WRITE g_i.
‎2009 Jan 08 2:57 PM
hi,
Data l_string type char20 value '123aase123***3sda'.
Data l_num(20) type N.
l_num = l_string.
l_num will contain '1231233'.
‎2009 Jan 09 5:11 AM
Hi Amit,
Please close the thread, if your problem has been resolved.Thanks
Nitesh