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

String Operation

Former Member
0 Likes
431

Hi,

I have a requirement like this.

It is given as :

1= A.

2 = B

3 = C.

So, If I get the input as : 321.12,

I need to get out put as : CBA.AB.

Please let me know, how can I do this.

Regards

Sandeep

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
411

Press F1 on TRANSLATE.

Rob

3 REPLIES 3
Read only

Former Member
0 Likes
412

Press F1 on TRANSLATE.

Rob

Read only

Former Member
0 Likes
411

Try these codes:

Data: W_char(20) type c value '1A2B3C4D5E6F7G8H9I'.
Data: w_char1(10) value '321.12'.
Translate w_char1 using w_char.
write : w_char1.

Regards,

Gurpreet

Read only

SuhaSaha
Product and Topic Expert
Product and Topic Expert
0 Likes
411

Hello Sandeep,

This bit of code may be of some help:

DATA:
      BEGIN OF it1 OCCURS 0,
        lhs TYPE char1,
        rhs TYPE char1,
      END OF it1.

it1-lhs = 1.
it1-rhs = 'A'.
APPEND it1.

it1-lhs = 2.
it1-rhs = 'B'.
APPEND it1.

it1-lhs = 3.
it1-rhs = 'C'.
APPEND it1.

SORT it1[] BY lhs.

DATA: v_str_ip TYPE string,
      v_str_op TYPE string,
      v_lhs TYPE char1,
      v_rhs TYPE char1,
      v_len TYPE i,
      v_off TYPE i.

v_str_ip = '321.12'.

" --> Foolish solution provided earlier :-))
v_len = STRLEN( v_str_ip ).

DO v_len TIMES.
  v_lhs = v_str_ip+v_off(1).

  READ TABLE it1 WITH KEY lhs = v_lhs BINARY SEARCH.
  IF sy-subrc = 0.
    CONCATENATE v_str_op it1-rhs INTO v_str_op.
  ELSE.
    CONCATENATE v_str_op v_lhs INTO v_str_op.
  ENDIF.

  v_off = v_off + 1.
ENDDO.

WRITE:
/ 'INPUT:', v_str_ip,
/ 'OUTPUT:', v_str_op.

CLEAR: v_str_op.

" --> Proficient solution (Thanks to Rob for his enlightenment !!! )
DATA: v_trans TYPE string.

LOOP AT it1.
  CONCATENATE v_trans it1-lhs it1-rhs INTO v_trans.
ENDLOOP.

v_str_op = v_str_ip.

TRANSLATE v_str_op USING v_trans.

WRITE:
/ 'INPUT:', v_str_ip,
/ 'OUTPUT:', v_str_op.

BR,

Suhas

Edited by: Suhas Saha on May 19, 2009 6:05 PM