*** 문자열 시작부분, 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
감사요~~~~
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
42 | GR 정보(MIGO) 조회 펑션. | 우헤헤 | 2013.03.04 | 5073 |
41 | 해당 플랜트/저장위치/제품의 가용수량 체크 함수 | 꿀단지 | 2011.10.11 | 5020 |
40 | 파일의 경로를 입력하면, 그 파일명과 디렉토리를 딱 나누어줍니다 [3] | 꿀단지 | 2011.10.11 | 4995 |
39 | IP를 가져오는 클래스 메소드 및 함수 [6] | sapjoy | 2007.04.04 | 4931 |
38 | 반올림 | 꿀단지 | 2011.10.11 | 4930 |
37 | [FI-AA] Asset의 description 등. 내역을 변경하려 합니다. 도와 주십시오. [2] | 노냐 | 2011.12.13 | 4915 |
36 | F4 /Serarch help [5] | 꿀단지 | 2011.10.11 | 4878 |
35 | SAP Function 모음 [21] | CO01 | 2007.11.08 | 4849 |
34 | (-)부호를 앞으로 바꿔주는 함수입니다 [13] | ecbase | 2006.12.01 | 4842 |
33 | Holiday 와 Workingday 관련 펑션 [1] | 밤톨™ | 2008.03.05 | 4779 |
32 | POPUP관련함수들 [14] | Delight | 2008.04.30 | 4771 |
31 | Function 자료 [13] | 밥퍼 | 2007.04.25 | 4765 |
30 | 인덱스 정보, index column [1] | sapjoy | 2013.04.01 | 4761 |
29 | CRM에서 첨부파일 기능구현 | GG | 2016.02.03 | 4690 |
28 | PGM에서 File생성 및 전송이 가능합니다 [3] | 꿀단지 | 2011.10.11 | 4668 |
27 | background 관련 함수 [1] | sapjoy | 2006.12.28 | 4621 |
26 | 현재 떠있는 화면에서 특정 필드의 값을 읽어오는 함수. [7] | 나침반친구 | 2007.03.13 | 4508 |
25 | 기본적인 Function 모음입니다. [36] | Pioneer | 2007.11.26 | 4500 |
24 | 왕기초 펑션 [18] | 냐하하 | 2007.11.30 | 4489 |
23 | FUNCTION MODULES [27] | sapjoy | 2007.03.29 | 4485 |
<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>