메뉴 건너뛰기

SAP 한국 커뮤니티



16진수로 변환,다시 char로 변환 소스 입니다.

남산밑 2010.06.28 15:20 조회 수 : 20001

유니코드 문제인지..주소필드에 원치않는 값이 포함되어 있음을 디버깅중에 발견 하였습니다.


시각적으로는 이상없이 보이지만 디버깅이나 출력을 하면 '#'이 들어가 있음을 알 수 있습니다.


여러분의 도움을 받아 급하게 작성하느라 품질은 좀..


하지만 원하시는 분들에게 도움이 되었으면 좋겠습니다.


 


*&LFA1-MCOD3필드에 '#'이 포함되어 있어 테이블 조회시에는 안보이나
*&출력시 주소에 '#'이 포함되어 나오는 문제가 발생함.
*&본 프로그램은 기존 등록된 주소에 포함된 '#'을 지우는 역할을 함.
*&---------------------------------------------------------------------*


TABLES : LFA1.


Data: IT_LFA1      LIKE TABLE OF LFA1     WITH HEADER LINE.
data: c type c.
data: hexa1 type string.
data: hexa2 type string.


 


SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_LFA1
FROM LFA1.


 


SORT IT_LFA1 BY LIFNR.


 


field-symbols: type x.
field-symbols: type c.


 


LOOP AT IT_LFA1.


*char -> hexa 로 변환
  assign IT_LFA1-MCOD3 to casting.
  hexa1 = .


 


*00A0(#) -> 0020(null)으로 변환
  IF hexa1 CS '00A0'.
    WRITE: IT_LFA1-MCOD3. "수정전 출력
    REPLACE ALL OCCURRENCES OF '00A0' IN hexa1 WITH '0020'.
    = hexa1.


 


*hexa -> char로 변환
    assign to casting.
    IT_LFA1-MCOD3 = .
    WRITE: IT_LFA1-MCOD3. "수정후 출력
    new-line.


   MODIFY LFA1 FROM IT_LFA1.
  ENDIF.
ENDLOOP.