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

Truncating problem

Former Member
0 Likes
824

DATA : BEGIN OF lt_icon OCCURS 0,

icon TYPE icon-id,

END OF lt_icon.

DATA:l_default_text_message(95) TYPE C.

DATA:begin of lt_text_data occurs 0,

l_tdspras like stxh-tdspras.

end of gt_text_data.

DATA: g_lang TYPE string.

REFRESH:lt_text_data.

CLEAR:l_lang.

lt_icon-icon = '@8R@'.

SELECT tdspras FROM stxh

INTO TABLE lt_text_data

WHERE tdname = 'CONSTRUCT'.

IF sy-subrc = 0.

LOOP AT lt_text_data.

CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.

IF sy-tabix > 3.

CONCATENATE text-046 l_lang text-047 INTO l_lang.

EXIT.

ENDIF.

ENDLOOP.

MOVE text-046 l_lang TO l_default_text_message.

ELSE.

MOVE lt_icon-icon text-047 l_lang TO l_default_text_message.

ENDIF.

Req:I want to surpress the coma for last language from from l_lang after loop.

say l_lang having languages D,E,F,(Here i have to truncate or say surpress ',' for last languagef from l_lang)

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
797

hi sailu,

Use the below code after the LOOP.

shift l_lang right deleting trailing space.

shift l_lang right deleting trailing ',' .

shift l_lang left deleting leading space.

Thanks,

Vamshi

6 REPLIES 6
Read only

former_member242255
Active Contributor
0 Likes
797

write CONCATENATE ...SEPARATED BY ','

it will work...

Read only

Former Member
0 Likes
797

hi,

.........

SELECT tdspras FROM stxh

INTO TABLE lt_text_data

WHERE tdname = 'CONSTRUCT'.

DATA xt LIKE sy-dbcnt.

xt = sy-dbcnt.

IF sy-subrc = 0.

LOOP AT lt_text_data.

IF sy-tabix = xt.

CONCATENATE l_lang lt_text_data-l_tdspras INTO l_lang.

ELSE.

CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.

ENDIF.

......

regards,darek

Read only

Former Member
0 Likes
797

Hi

Try like this:

LOOP AT lt_text_data.

IF sy-tabix LE 3.

CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.

endif.

IF sy-tabix > 3.

CONCATENATE l_lang lt_text_data-l_tdspras INTO l_lang.

CONCATENATE text-046 l_lang text-047 INTO l_lang.

EXIT.

ENDIF.

ENDLOOP.

Kiran..

Read only

Former Member
0 Likes
798

hi sailu,

Use the below code after the LOOP.

shift l_lang right deleting trailing space.

shift l_lang right deleting trailing ',' .

shift l_lang left deleting leading space.

Thanks,

Vamshi

Read only

former_member222860
Active Contributor
0 Likes
797

you can truncate the last char like this:

data: l_lang type string.
data: len type i.

l_lang = 'a,b,c,d,'.

len = strlen( l_lang ).

len = len - 1.

l_lang = l_lang+0(len).

write:/ l_lang.

Read only

Former Member
0 Likes
797

Hi Sailu,

You can check the no of records of the internal table and you can concatenate with out coma (,)

during last record processing inside the loop comaparing SY-TABIX and no of lines

of the table.

I have made some change to your code , now the last , is not coming.

Check the bellow code - -

DATA : BEGIN OF lt_icon OCCURS 0,
icon TYPE icon-id,
END OF lt_icon.

DATA:l_default_text_message(95) TYPE c.

DATA:BEGIN OF lt_text_data OCCURS 0,
l_tdspras LIKE stxh-tdspras,
END OF lt_text_data.

DATA: l_lang TYPE string,
      w_line TYPE i.         " Contains entries in the table


REFRESH:lt_text_data.
CLEAR: l_lang.
lt_icon-icon = '@8R@'.

SELECT tdspras FROM stxh
INTO TABLE lt_text_data
WHERE tdname = 'CONSTRUCT'.

IF sy-subrc = 0.
  DESCRIBE TABLE lt_text_data LINES w_line.   "Getting No of lines of the table
  LOOP AT lt_text_data.
    IF w_line EQ sy-tabix.   " Checking whether last or not
CONCATENATE l_lang lt_text_data-l_tdspras  INTO l_lang. " If last concatenate without ,(coma)
      EXIT.      " Exit
    ENDIF.
    CONCATENATE l_lang lt_text_data-l_tdspras ',' INTO l_lang.
    IF sy-tabix > 3.
      CONCATENATE text-046 l_lang text-047 INTO l_lang.
      EXIT.
    ENDIF.
  ENDLOOP.
  CONCATENATE text-046 l_lang INTO l_default_text_message.
ELSE.
  CONCATENATE lt_icon-icon text-047 l_lang INTO l_default_text_message.
ENDIF.

WRITE : l_lang.

Regards

Pinaki