안녕하세요..
제목처럼 첫글자만 대문자로 변경하려고 합니다.
Data : l_string(100).
l_string = 'ATEST BTEST CTEST DEGO-EKNOW'.
결과값 : Atest Btest Ctest Dego-Ekonw
* l_string의 값은 매번 다른 값으로 변경됩니다.
* DEGO-EKNOW는 Dego-Eknow로 변경해야 하는데....쩝..
펑션 있을까요?
아님...만들어야 하나...휴~~
즐거운 저녁보내세요...
저두 일단 펑션 만들어봐야 겠네요..에고...
댓글 7
-
StoryGuy97™
2009.03.07 02:28
-
bd
2009.03.07 05:57
오호 이거 한번 맨들어 볼까요???ㅋㅋ
문뜩 떠오르는 로직은 이러 합니다.
String 값을 find 구문을 이용해 space 기준으로 불러 온다음
불러온 해당에 첫값을 대문자로 변화 시키면 될듯 한대요 ...
Dego-Eknow 에 경우는 ..........흠.......
또 Find 해야하나 ㅡㅡ^
힌트 부탁 드림니다 @@
-
SAYA
2009.03.09 17:48
split 보단
l_string 의 length 를 구해서 do 구문으로
한글자씩 읽어 가면서
첫번째, space 다음, '-' 다음에만 대문자로
그외엔 소문자로 변경하면 간단히 해결되겠네요.
-
민버미꺼!
2009.03.09 20:33
답변 주신 모든 분들 감사드립니다.
SAYA님 답변을 참조해서 펑션 만들어야 겠네요..
후..펑션이나 팁에 올리겠습니다.
감사합니다.
-
SAYA
2009.03.09 22:05
시간이 좀 있어서 만들어 봤습니다.
ABAP FUNCTION 에 올려 놓았습니다.
-
Gwang Chul
2009.03.10 02:18
제가 한번 해봤습니다.
data: i_len type i,
i_str(100) type c,
i_char type string,
idx2 type i,
idx3(10) type c,
idx type i.
CONCATENATE 'abcdefghijklmnopqrstuvwxyz'
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
INTO i_char.
i_str = 'ATEST BTEST CTEST DEGO-EKNOW'.
i_len = strlen( i_str ).
do i_len TIMES.
idx = idx + 1.
idx2 = idx2 + 1.
idx3 = idx - 1.
SEARCH i_char for i_str+idx3(1) .
if sy-subrc ne 0.
idx2 = 0.
CONTINUE.
endif.
if idx2 = 1.
TRANSLATE i_str+idx3(1) to UPPER CASE.
else.
TRANSLATE i_str+idx3(1) to LOWER CASE.
endif.
ENDDO.
write:i_str. -
민버미꺼!
2009.03.11 19:08
Gwang Chul님 답변 감사드립니다.
Function 게시판에 제가 완성본 올렸습니다..
헛.... 저런 함수는 없는걸로 알고 있습니다.
split 해서 담아서 첫번째 자리 대문자로 변경하셔야 할듯....
까칠한 현업이군요...
함수 만들면 공유 부탁드립니다...
저도 까칠한 사람 만날까봐~ ^^;;;