*** 문자열 시작부분, SPACE 다음, '-' 다음 부분을 대문자로 변경하고
나머지는 소문자로 변경합니다.
Q&A 에 질문이 있어서 만들어 봤습니다. 도움이 되시길... ***
댓글 8
-
민버미꺼!
2009.03.09 14:35
-
민버미꺼!
2009.03.09 14:37
참고로 저는 이전 문자가 l_ca_char에 포함이 된다면 현재 문자를 대문자로 변경하도록 구현했습니다. -
Mike
2009.03.09 17:11
유용하게 쓰겠읍니다. -
Gwang Chul
2009.03.09 17:30
<P>문제가 있습니다.</P>
<P>대문자를 고려하지 않았고 - 와 같은 부호가 있는 경우를 고려하지 않았습니다.</P> -
SAYA
2009.03.10 08:17
Gwang Chul 님의 의견을 참고하여 민버미꺼님의 소스를 수정한다면...
l_ca_char(20) --> l_ca_char(45) 로 length 를 변경하면 '-' 부분은
해결되겠네요
아래 DO 문에서 lower case 로 변환하는 부분을 추가하면 대문자가
포함되어 있는 경우 나머지 부분은 소문자로 변경합니다.
*** 수정된 소스 ***
DATA : l_str(100), "Input String
l_len TYPE i, "String Length
l_ca_char(45), "Contain String
l_pre_char, "Pre Char
l_currenct_idx TYPE i. "Looping Current Index
l_ca_char = ' _0123456789.,=()[]{}-;:<>|@^~*+-/#''?$%&!"'.
l_str = 'asdfdsaf bfsdfsd cfsadf dfdsfds efdsaf-ffasdf gfdasf'.
l_len = STRLEN( l_str ).
l_currenct_idx = 0.
l_pre_char = l_str+l_currenct_idx(1).
* First char translate
IF NOT l_str+l_currenct_idx(1) IS INITIAL.
TRANSLATE l_str+l_currenct_idx(1) TO UPPER CASE.
l_currenct_idx = 1.
ENDIF.
**
DO l_len TIMES.
IF l_pre_char ca l_ca_char.
TRANSLATE l_str+l_currenct_idx(1) TO UPPER CASE.
ELSE.
TRANSLATE l_str+l_currenct_idx(1) TO LOWER CASE.
ENDIF.
l_pre_char = l_str+l_currenct_idx(1).
ADD 1 TO l_currenct_idx.
ENDDO.
write:/ 'Result : ', l_str. -
민버미꺼!
2009.03.10 09:03
<P>모든 분들 감사합니다..대문자를 미처...좋은 하루 보내세요</P> -
민버미꺼!
2009.03.11 10:03
<P>완성본입니다.</P>
<P> DATA : l_str(100), "Input String<BR> l_len TYPE i, "String Length<BR> l_ca_char(50), "Contain String<BR> l_pre_char, "Pre Char<BR> l_currenct_idx TYPE i. "Looping Current Index</P>
<P> l_ca_char = ' _0123456789.,=()[]{}-;:<>|@^~*+-/#''?$%&!"'.<BR> l_str = 'asdfdsaf bfsGfsd cHsadf dfdsCds efdsaf-ffaDdf gfdasf'.</P>
<P> l_len = STRLEN( l_str ).</P>
<P> l_currenct_idx = 0.</P>
<P> l_pre_char = l_str+l_currenct_idx(1).</P>
<P>* First char translate<BR> IF l_str+l_currenct_idx(1) IS NOT INITIAL.</P>
<P> TRANSLATE l_str+l_currenct_idx(1) TO UPPER CASE.</P>
<P> l_currenct_idx = 1.</P>
<P> ENDIF.<BR>**</P>
<P> DO l_len TIMES.</P>
<P> IF l_pre_char ca l_ca_char.</P>
<P> TRANSLATE l_str+l_currenct_idx(1) TO UPPER CASE.</P>
<P> else.</P>
<P> TRANSLATE l_str+l_currenct_idx(1) TO LOWER CASE.</P>
<P> ENDIF.</P>
<P> l_pre_char = l_str+l_currenct_idx(1).</P>
<P> ADD 1 TO l_currenct_idx.</P>
<P> ENDDO.</P>
<P> write:/ 'Result : ', l_str.</P> -
린짱아
2009.03.24 15:04
감사요~~~~
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
62 | POPUP관련함수들 [14] | Delight | 2008.04.30 | 4774 |
61 | ABAP 문법 사용법 정리 [60] | Delight | 2008.04.30 | 7686 |
60 | 암호화 function [14] | magicsy69 | 2008.06.03 | 7369 |
59 | RFC [18] | 아밥퍼 | 2008.06.07 | 5984 |
58 | 암호화Function [9] | Delight | 2008.07.07 | 7056 |
57 | Online프로그램에서 조회조건 다중선택 관련 [6] | COMAN | 2008.11.20 | 6363 |
» | 문자열에서 특정문자값을 기준으로 첫문자를 대문자로 변경 [8] | SAYA | 2009.03.09 | 6277 |
55 | 프로그램실행시간 구하기 [16] | 쥬앙 | 2009.04.06 | 9337 |
54 | call transaction 함수로 새로운 세션생성하기 [9] | 아밥 잭 | 2009.10.28 | 7290 |
53 | 이메일로 파일 보내는 함수 [3] | 열공아밥 | 2009.12.20 | 9280 |
52 | [부가세] Multi key 변환 펑션 [6] | 미소 | 2010.07.26 | 7862 |
51 | [Function]오늘은 몇요일일까요? [4] | 양키 | 2010.09.29 | 8449 |
50 | [Function] 메세지 박스를 뛰워보자 [10] | 양키 | 2010.09.29 | 7934 |
49 | OSS NOTE 찾는 Function [2] | magicsy69 | 2010.11.24 | 5939 |
48 | 앞에 위치하는 0(ZERO)없애는 평션 [12] | ks | 2011.03.16 | 6534 |
47 | 사원의 계획근무시간을 알려주는 펑션입니다. | 꿀단지 | 2011.10.11 | 3951 |
46 | 파일의 경로를 입력하면, 그 파일명과 디렉토리를 딱 나누어줍니다 [3] | 꿀단지 | 2011.10.11 | 5011 |
45 | 여러가지 Order를 만들어줍니다. | 꿀단지 | 2011.10.11 | 4441 |
44 | Conversion routine | 꿀단지 | 2011.10.11 | 7061 |
43 | Noraml Sales Order를 변경하거나 지웁니다. | 꿀단지 | 2011.10.11 | 4070 |
<P>저두 이제 막 완성하여 올리려고 했는데..참고로 저의 소스 입니다.</P>
<P> </P>
<P> DATA : l_str(100), "Input String<BR> l_len TYPE i, "String Length<BR> l_ca_char(20), "Contain String<BR> l_pre_char, "Pre Char<BR> l_currenct_idx TYPE i. "Looping Current Index</P>
<P> l_ca_char = ' _0123456789.,=()[]{}-;:<>|@^~*+-/#''?$%&!"'.<BR> l_str = 'asdfdsaf bfsdfsd cfsadf dfdsfds efdsaf-ffasdf gfdasf'.</P>
<P> l_len = STRLEN( l_str ).</P>
<P> l_currenct_idx = 0.</P>
<P> l_pre_char = l_str+l_currenct_idx(1).</P>
<P>* First char translate<BR> IF l_str+l_currenct_idx(1) IS NOT INITIAL.</P>
<P> TRANSLATE l_str+l_currenct_idx(1) TO UPPER CASE.</P>
<P> l_currenct_idx = 1.</P>
<P> ENDIF.<BR>**</P>
<P> DO l_len TIMES.</P>
<P> IF l_pre_char ca l_ca_char.</P>
<P> TRANSLATE l_str+l_currenct_idx(1) TO UPPER CASE.</P>
<P> ENDIF.</P>
<P> l_pre_char = l_str+l_currenct_idx(1).</P>
<P> ADD 1 TO l_currenct_idx.</P>
<P> ENDDO.</P>
<P> write:/ 'Result : ', l_str.</P>