Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

I need help on Split or anything

Former Member
0 Likes
1,174

Hi experts

i got a string and one field got values like this.

b = ab_345

b= cvb 234

b=23456

b=sdfg_7892

how can i add infront off all the values v_345 ,v_234,v_23456 and v_7892.

Hi experts

i got a string and one field got values like this.

b = ab_345

b= cvb 234

b=23456

b=sdfg_7892

how can i add infront off all the values v_345 ,v_234,v_23456 and v_7892.

8 REPLIES 8
Read only

Former Member
0 Likes
1,138

Hi Sandya,

Use FIND OCCURANCE OF '_' in your string. when the search is successful, sy-fdpos will be set its offset. Then delete those many letters from your substring and append v to your _234 etc.

Thanks,

Kiran

Read only

StMou
Active Participant
0 Likes
1,138

Hi,

Try this


PARAMETERS P_DATA TYPE STRING.

DATA D_OFFSET TYPE SY-FDPOS.



WRITE : P_DATA, '--->'.

* Search te Character '_' and store position into variable
FIND FIRST OCCURRENCE OF '_' IN P_DATA MATCH OFFSET D_OFFSET.

* REPLACE '_' if found
IF D_OFFSET GT 0 .
  ADD 1 TO D_OFFSET.
ENDIF.

CONCATENATE 'V_' P_DATA+D_OFFSET INTO P_DATA.

WRITE P_DATA.

Rgds

Read only

Former Member
0 Likes
1,138

Hi thanks for ur reply but if the space in between the value .its not working

ex: p_data abcde 345

output : v_abcde 345.

i want like this v_345

Read only

Former Member
0 Likes
1,138

When the sy-subrc fails, check for SPACE and follow the same logic.

Regards,

Kiran

Read only

StMou
Active Participant
0 Likes
1,138

Hi,

you would like replace all character not Equals 0 1 2 3 4 5 6 7 8 9 and put before string 'V_' ?

Rgds

Edited by: stéphane mouraux on Mar 15, 2010 2:59 PM

Read only

Pawan_Kesari
Active Contributor
0 Likes
1,138
REPLACE FIRST OCCURRENCE OF REGEX '[0-9]' IN lv_string WITH 'v_$&' .
Read only

Former Member
0 Likes
1,138

hi ,

try the following code .

data: p_data type string value 'abcde 345'.

data: l_result type string.

data: l_length type i.

data: l_count type i VALUE 0 .

data: l_current_char type c.

data: l_no_number type c value 'X'.

l_length = strlen( p_data ).

WHILE l_count < l_length.

l_current_char = p_data+l_count(1).

if not l_current_char co '0123456789' and

not l_current_char is INITIAL.

REPLACE ALL OCCURRENCES OF l_current_char IN p_data WITH l_no_number.

endif.

add 1 to l_count.

ENDWHILE.

CONDENSE p_data NO-GAPS.

REPLACE ALL OCCURRENCES OF l_no_number IN p_data WITH space.

CONCATENATE 'v_' p_data into l_result.

write l_result.

Regards luigi

Read only

Former Member
0 Likes
1,138

REPORT ZTEST.

PARAMETERS P_DATA TYPE STRING.

DATA D_OFFSET TYPE SY-FDPOS.

WRITE : P_DATA, '--->'.

data: len TYPE n,

fr TYPE n.

len = strlen( p_data ).

fr = 0.

do.

if fr le len.

if p_data+fr(1) ca '0123456789'.

    • fr = fr + 1.

len = len - fr.

CONCATENATE 'V_' P_DATA+fr(len) INTO P_DATA.

exit.

endif.

fr = fr + 1.

ENDIF.

ENDDO.

**

WRITE P_DATA.