![]() |
|
||||||||
경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지 |
|
죄송합니다만...
말씀하신 두가지 소스는 다르게 동작합니다. 아마도 Trim() 함수를 잘못 이해하신 것이 아닌가 싶습니다. Trim()함수는 인자로 넘긴 문자열 전체에서 공백을 지우는 것이 아니라, 인자 문자열의 앞/뒷부분에 있는 공백만 삭제합니다. 따라서 Trim(" qqq qq ")는 "qqqqq"가 되는 것이 아니라 "qqq qq"가 됩니다. 따라서, 처음 보여주신 코드는 각 라인마다 앞/뒤의 공백을 지우는 코드이고, 뒤에 보여주신 코드는 여러 라인으로 된 문자열 전체에서 맨 앞의 공백(첫줄의 앞 공백)과 맨 뒤의 공백(마지막줄 뒷 공백)만 삭제합니다. 어쨌든 포인트는 중간공백은 포함시킨다라고 해야 겠네요 ^^...
음... 그냥 Memo1->Text.Length() 를 통해 값을 통해 내용이 있나 없나를 검사하다 입력된 문자열의 앞뒤 공백때문에 문제가 생기셨던걸로 보입니다. 그래서 Trim() 함수를 쓰게 된것 같네요. 그리고 참고적으로 Memo1 에서 각 라인은 \r\n 으로 구분이 되는데 Trim() 함수를 쓰면 이를 제거 하게 되는 효과가 되어 입력된 문자열을 정확하게(?) 판단할 수 있게 되는 것 같습니다. 결국... " 12 34\r\n" 이런 것이 Memo1 에 입력되어 있는 경우 "12 34" 를 빼어내 이를 검사하는 걸로 Memo1->Text.Trim().Length() 이러한 문장이 나오지 않았는가 생각됩니다 ^^... @.@ 글을 쓰다보니 음 뭔가 정리가;;; 내용중 잘못된 부분을 바꿨습니다. 꾸벅 ㅡ.ㅡ
if( !bEmpty ) --> if( bEmpty ) if( Memo1->Lines->Text.Trim() != "" ) --> if( Memo1->Lines->Text.Trim() == "" ) 참고로 위 팁의 경우 Trim()보단 TrimLeft()가 더 적절한 것 같습니다. (TrimRight()가 더 적합할 지도.... --;) 글구.... 음~ 리플이 몇개 달렸군요. 먼저 황경록님께.... 1. Memo1->Text.Trim().Length() == 0에 대하여 별 차이는 없겠지만 Memo1->Text.Trim().Length() == 0 // 문자열.Length() == 0 보단 Memo1->Text.Trim() == "" // 문자열 == "" 이 더 읽기 편해 보입니다 (개인적인 취향차이일수도 ....) 처리 속도 면에선 Memo1->Text.Trim().Length()이 좋아 보입니다. Memo1->Lines->Text는 Memo1->Text를 쓰는 것은 ... --> TWinControl --> TCustomEdit --> TEdit --> TCustomEdit --> TCustomMemo --> TMemo 의 형태로 상속됐으니 당연하겠구요(좋은 지적 감사합니다.) 다음은 임프님께... 본 팁의 요점은 Memo1의 첫번째 줄 "" 두번째 줄 " \t " 세번째 줄 " " 와 같은 경우 Trim("\r\n \t \r\n \r\n")이 ""을 돌려주는 것을 이용해 TMemo에 적용한 겁니다. 내용중 잘못된 부분을 바꿨습니다. 꾸벅 ㅡ.ㅡ if( !bEmpty ) --> if( bEmpty ) if( Memo1->Lines->Text.Trim() != "" ) --> if( Memo1->Lines->Text.Trim() == "" ) 참고로 위 팁의 경우 Trim()보단 TrimLeft()가 더 적절한 것 같습니다. (TrimRight()가 더 적합할 지도.... --;) 글구.... 음~ 리플이 몇개 달렸군요. 먼저 황경록님께.... 1. Memo1->Text.Trim().Length() == 0에 대하여 별 차이는 없겠지만 Memo1->Text.Trim().Length() == 0 // 문자열.Length() == 0 보단 Memo1->Text.Trim() == "" // 문자열 == "" 이 더 읽기 편해 보입니다 (개인적인 취향차이일수도 ....) 처리 속도 면에선 Memo1->Text.Trim().Length()이 좋아 보입니다. Memo1->Lines->Text는 Memo1->Text를 쓰는 것은 ... --> TWinControl --> TCustomEdit --> TEdit --> TCustomEdit --> TCustomMemo --> TMemo 의 형태로 상속됐으니 당연하겠구요(좋은 지적 감사합니다.) 다음은 임프님께... 본 팁의 요점은 Memo1의 첫번째 줄 "" 두번째 줄 " \t " 세번째 줄 " " 와 같은 경우 Trim("\r\n \t \r\n \r\n")이 ""을 돌려주는 것을 이용해 TMemo에 적용한 겁니다. 오해 없으시길... 관련 글 리스트
|
Copyright © 1999-2015, borlandforum.com. All right reserved. |
좀더 프로그래머틱(? 누구의 기준이냐~~~~ 흐~) 하게 하려면 Memo1->Text.Trim().Length() == 0 으로 하신다면 ^^:: 어떨까요~