메뉴 건너뛰기

SAP 한국 커뮤니티

사용자에게 입력받은 문장을 몇줄에 걸쳐서 잘라서 표현해야하는데요


일단 40바이트씩 잘라서 줄을 넣으려고 하는데


한글이 2바이트다보니 40바이트와 41바이트 사이에 끼이면 표현이 안되더군요.(참고로 스마트폼에 윈도우 밑에 템플릿만들고 텍스트에 넣으려고 합니다)


 


그래서


if ( ls_zsret1000-text_xl+40(2) >= '가' and ls_zsret1000-text_xl+40(2) <= '힣' )
   or ls_zsret1000-text_xl+40(2) = ''.


endif.


요런식으로 해당 2바이트가 한글이 아닌경우에 넣으려는 변수에 1바이트 추가해서 완전한 한글을 만들어서 보여주려


했습니다.


그런데 이런,


왠일인지 39~40까지 문자를 디버깅해서 보니 값이 '낳' 요런식으로 요상하게 들어가있는것입니다.


아마도 양쪽에 있는 값을 어떻게 반씩 물어오다보니 그렇게 변한듯한데 아무튼 낳 요런식으로 들어가다보니


위에 로직에 포함되서 1바이트 추가가 안되는겁니다.


 


휴~


그래서 어디서 요런 로직을 찾았습니다.



2Byte String은 MSB가 '1'로 Setting되어 두개의 Byte가 Pair를 이룬다는


원칙을 기반으로 한다는 펑션이지요.


 


그런데 이 펑션이 좀 완전치가 못한거 같아서요.


혹시 아시는 분 없으신가요. 또는 위와 같은 문제를 해결해보신분이요~


 


 



FUNCTION CORRECT_2BYTES_STR.


*"----------------------------------------------------------------------


*"*"로컬인터페이스:


*" IMPORTING


*" VALUE(I_STR) TYPE C


*" EXPORTING


*" VALUE(O_STR) TYPE C


*"----------------------------------------------------------------------


 


 


 


*-----------------------------------------------------------------------


* Data Declaration


*-----------------------------------------------------------------------


DATA: STA   TYPE   I, " HEXA로 읽을위치


         POS   TYPE   I, " Space로 조정할 위치


         FLG, " 현재 2Byte Pair 상태


         LEN    TYPE I. " Input String 길이


FIELD-SYMBOLS: , " Input String의 Hexa Value


TYPE X. " 비교할 1byte Charater의 Hexa값


 


 


*-----------------------------------------------------------------------


* Main Procedure of Function


*-----------------------------------------------------------------------


O_STR = I_STR.


 


*--- Input String이 없으면 그냥 Return


LEN = STRLEN( I_STR ).


IF LEN = 0.


EXIT.


ENDIF.


 


 


*--- Correction 시작


ASSIGN I_STR TO TYPE 'X'.


CLEAR: STA, POS, FLG.


DO LEN TIMES.


STA = SY-INDEX - 1.


 


ASSIGN +STA(1) TO .


IF >= '80'. " 2Byte Character인지 Check: MSB가 '1'


IF FLG = SPACE.


FLG = 'X'. " 2Byte문자의 첫번째 Byte임: 시작


ELSE.


FLG = SPACE. " 2Byte문자의 두번째 Byte이고, 정상상태: 종료


ENDIF.


ELSE. " 1Byte Character임


IF FLG = 'X'. " 바로 앞의 Byte가 2Byte문자의 첫번째Byte였음.


FLG = SPACE. " 비정상으로 짤려진 2Byte문자을 Space로 변환


POS = STA - 1.


O_STR+POS(1) = SPACE. " Correction


ENDIF.


ENDIF.


ENDDO.


 


IF FLG = 'X'. " 마지막 문자가 짤려진 2Byte문자인지 Check


O_STR+STA(1) = SPACE. " Correct


ENDIF.


 


ENDFUNCTION.


 


 


 


데이타 정의가 좀 잘 안되있는지 분석도 잘안되네용.


MSB 개념도 잘 이해가 안가고요~


 


고수분들의 도움부탁드립니다.

번호 제목 글쓴이 날짜 조회 수
4527 <img src=3.gif>즐겨찿기 백업 가능한지.. [2] abbap 2010.02.23 1760
4526 <img src=2.gif>ABAP에서FTP에 DATA 읽어올때 ERRO 발생 [1] cskang 2010.02.23 1953
4525 <img src=3.gif>SAP CBO Table -> MS SQL Server ODS Table 이관 작업을 SSIS 패키지를 사용하여 진행하던 중 문제 [2] file max 2010.02.23 2842
4524 <img src=1.gif>스크린 수정 후 스크린 상태가 수정/활성 (Modified/Active) 로 남아 있습니다. Waiting 2010.02.22 1697
4523 <img src=1.gif>user-exit (cmod) 삭제후 발생한 현상 도도마녀 2010.02.21 1341
4522 <img src=2.gif>ALV 컬럼 EDIT 모드시 - 값 가능하게 하는 법 [8] 파파 2010.02.19 3418
4521 <img src=3.gif>Delete Filter 관련 문의 (Delete Filter 기능 및 개인별 Set Filter 지정 가능 관련 문의) [3] MM초보^^ 2010.02.19 1386
4520 <img src=2.gif>FTP시 DATASET_CANT_CLOSE 덤프 발생 [1] 잿빛바다 2010.02.19 2025
4519 <img src=3.gif>[MMSC] Storage locations collectively delete ?? [2] 이노펠리스 2010.02.18 2513
4518 <img src=3.gif>리포트 프로그램에서 Write 문으로 결과를 표시한 화면에 GUI STATUS 나타나게 하는 방법 [2] 준서기 2010.02.18 1390
4517 <img src=2.gif>나만의 package 생성 및 program 설정 문의입니다^^;; [1] file 냐옹냐옹 2010.02.18 1746
4516 <img src=2.gif>sap memory 를 지울려면 어떤구문을 쓰죠? [2] 예스맨 2010.02.18 3478
4515 <img src=3.gif>BDC background job 실행과 Foreground 실행시 차이 질문입니다. [3] file jrjung 2010.02.18 3144
4514 <img src=2.gif>2개의 alv 에 variant 적용 하는 방법 문의 [3] 파파 2010.02.18 1629
4513 <img src=2.gif>[요청] 안녕하세요 alpha 관련 질문입니다 [3] kss301 2010.02.17 1263
4512 <img src=3.gif>selection screen 라디오버튼, 체크박스 enable 제어.. [3] 은미짱 2010.02.17 6324
4511 <img src=2.gif>SAP Logon 실행시 connection refused 에러가 발생합니다. [3] 냐옹냐옹 2010.02.17 1383
4510 <img src=3.gif>도메인 펑션이용하여 도메인 택스트 값출력 [3] file ena 2010.02.17 1897
4509 <img src=2.gif>object browser 에 안보이는 건 어떻게 하죠??? [1] file boaz0631 2010.02.17 1259
4508 <img src=1.gif>DOI를 이용한 엑셀파일 저장 문제입니다. Joon 2010.02.17 1640