*** 문자열 시작부분, 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 | 반올림 | 꿀단지 | 2011.10.11 | 4942 |
61 | 문자열의 길이에 맞게 앞의 공백을 0으로 채워주는 함수 | 꿀단지 | 2011.10.11 | 5660 |
60 | Noraml Sales Order를 변경하거나 지웁니다. | 꿀단지 | 2011.10.11 | 4075 |
59 | Conversion routine | 꿀단지 | 2011.10.11 | 7071 |
58 | 여러가지 Order를 만들어줍니다. | 꿀단지 | 2011.10.11 | 4456 |
57 | 파일의 경로를 입력하면, 그 파일명과 디렉토리를 딱 나누어줍니다 [3] | 꿀단지 | 2011.10.11 | 5055 |
56 | 사원의 계획근무시간을 알려주는 펑션입니다. | 꿀단지 | 2011.10.11 | 3969 |
55 | 앞에 위치하는 0(ZERO)없애는 평션 [12] | ks | 2011.03.16 | 6542 |
54 | OSS NOTE 찾는 Function [2] | magicsy69 | 2010.11.24 | 5942 |
53 | [Function] 메세지 박스를 뛰워보자 [10] | 양키 | 2010.09.29 | 7954 |
52 | [Function]오늘은 몇요일일까요? [4] | 양키 | 2010.09.29 | 8455 |
51 | [부가세] Multi key 변환 펑션 [6] | 미소 | 2010.07.26 | 7872 |
50 | 이메일로 파일 보내는 함수 [3] | 열공아밥 | 2009.12.20 | 9286 |
49 | call transaction 함수로 새로운 세션생성하기 [9] | 아밥 잭 | 2009.10.28 | 7317 |
48 | 프로그램실행시간 구하기 [16] | 쥬앙 | 2009.04.06 | 9384 |
» | 문자열에서 특정문자값을 기준으로 첫문자를 대문자로 변경 [8] | SAYA | 2009.03.09 | 6281 |
46 | Online프로그램에서 조회조건 다중선택 관련 [6] | COMAN | 2008.11.20 | 6370 |
45 | 암호화Function [9] | Delight | 2008.07.07 | 7060 |
44 | RFC [18] | 아밥퍼 | 2008.06.07 | 5991 |
43 | 암호화 function [14] | magicsy69 | 2008.06.03 | 7402 |
<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>