질문을 올리신 분이 있어서 ...
참조하시라고 올립니다. 완전히 원하는 바가 나오진 않겠지만, 소스를 곰곰히 보고 있으면 이해 되실 겁니다.
[IMPORT]
I_STR TYPE C
I_LEN TYPE I
[EXPORT]
O_STR TYPE STRING
[SOURCE]
FUNCTION Z_GET_LONG_TEXT.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(I_STR) TYPE C
*" VALUE(I_LEN) TYPE I
*" EXPORTING
*" REFERENCE(O_STR) TYPE STRING
*"----------------------------------------------------------------------
*-----------------------------------------------------------------------
* Data Declaration
*-----------------------------------------------------------------------
DATA: sta TYPE i, " HEXA location
flg. " current 2Byte Pair status
FIELD-SYMBOLS: <str>, " Hexa Value of input String
<xstr> TYPE x. " Hexa value of 1byte Charater
*-----------------------------------------------------------------------
* Main Procedure of Function
*-----------------------------------------------------------------------
DATA: o_len TYPE i.
CLEAR : o_str, o_len.
*--- if Input String doesn't exist, return
o_len = STRLEN( i_str ).
IF o_len = 0.
EXIT.
ENDIF.
*- if Input length is greater than total length, check input length
* if Input length is smaller than total length, check total length
IF o_len > i_len.
o_len = i_len.
ENDIF.
*--- Begin of correction
ASSIGN i_str TO <str> TYPE 'X'.
CLEAR: sta, flg.
DO o_len TIMES.
sta = sy-index - 1.
ASSIGN <str>+sta(1) TO <xstr>.
IF <xstr> >= '80'. " 2Byte Character
IF flg = space.
flg = 'X'. " 1st Byte of TWO
ELSE.
flg = space. " 2nd Byte of TWO : Normal Case
ENDIF.
ENDIF.
ENDDO.
*- if valid character is incompletede 2Byte,cut from pre-character
IF flg = 'X'. " IF Last character was cut abnormally
o_len = o_len - 1.
ENDIF.
o_str = i_str(o_len). "Return Value
* APPEND o_str. CLEAR o_str.
SHIFT i_str BY o_len PLACES.
* ENDDO.
ENDFUNCTION.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
344 |
EDI 와 IDOC
[10] ![]() | sapjoy | 2007.02.27 | 6225 |
343 |
원가 기초 공부
[35] ![]() | 현서아빠 | 2009.10.22 | 6254 |
342 |
초기화
[5] ![]() | 꼬마쿠키 | 2010.01.12 | 6269 |
341 |
BAPI관련 자료입니다.
[28] ![]() | iceout | 2009.10.23 | 6291 |
» | 2 byte 글자 자르기 관련 [1] | 정군 | 2009.04.30 | 6348 |
339 |
SAP 오라클비교_검토자료
![]() | SARA | 2007.03.27 | 6392 |
338 |
날짜관련 유용한 fucntion입니다
[9] ![]() | 꼬마쿠키 | 2010.01.12 | 6405 |
337 |
SAP CONTROLS WORKSHOP
[16] ![]() | sapjoy | 2007.01.29 | 6414 |
336 |
TABSTRIP IN ALV
[14] ![]() | sapjoy | 2007.03.30 | 6434 |
335 |
프로그램작성시 sap oracle optimize 방법입니다.^^
[4] ![]() | rain shower | 2010.05.26 | 6472 |
334 |
abap_report 자료
[28] ![]() | 뜨거운감자 | 2010.01.12 | 6518 |
333 |
lsmw
[10] ![]() | 문준연 | 2007.03.03 | 6520 |
332 |
SAP관련 링크모음
[1] ![]() | yang | 2007.05.09 | 6539 |
331 |
ALV 활용해 보기 메뉴얼입니다.
[38] ![]() | 미스터비인 | 2010.01.04 | 6539 |
330 |
해당 ROLE이 접근가능한 메뉴 보는 방법
[4] ![]() | 모포 | 2010.05.20 | 6547 |
329 | SAP Netweaver Trial Version License Renewal 관련 SDN 글 주소 [5] | 정군 | 2009.07.09 | 6578 |
328 |
RFCEXEC.doc
[6] ![]() | 꼽사리 | 2007.05.26 | 6607 |
327 |
CO CCA Process Overview 자료 입니다.
[20] ![]() | yaho | 2012.06.28 | 6674 |
326 |
BC - ABAP Dictionary
[1] ![]() | BlackBean | 2007.06.04 | 6698 |
325 |
ALV 관련 자료
[51] ![]() | 뮤메 | 2009.10.20 | 6712 |
좋은자료 감사합니다. 펑션화되있어, 오라클쪽에 자료 쏠때 유용하겠네요.