성심 성의껏 질문을 작성하여 주세요, 대충하시면 답변도 대충작성합니다.^^
① CAD 종류 : autocad
② VERSION : 2002-2010
③ 분 과 : ALL
④ 파일 첨부 :
⑤ 질문 내용 : vl-string-left-trim 함수에 대해서 여쭤볼께요..
vl-string-left-trim 함수의 정의를 살펴보면 (캐드그룹 참고)
"지정된 문자를 문자열의 시작부터 검색하여 제거한다"
(vl-string-left-trim character-set string)
## character-set : 제거될 문자를 나열한 문자열
## string : character-set에 지정된 문자가 제거될 문자열
라고 되어있습니다만..
아래와 같이 몇줄 만들어 응용해볼려고하니 제가 생각한 결과값이랑 다른게 나오네요..
character-set 에서 제가 무언가를 잘못 판단하고 있기에 생각과는 틀린값이 나오는것을 알겠는데요..
아직 이 함수에대해 개념정리가 안되어서 그러는데
혹시 vl-string-left-trim 함수를 자세히 설명좀 해주실분 계신다면 부탁드릴께요..
실험식 : _$ (vl-string-left-trim "0-PS-" "0-PS-P1234567")
내가 생각한 결과값 : "P1234567"
함수 결과값 : "1234567"
실험식 : _$ (vl-string-left-trim "0-PS-" "0-PS-S098765")
내가 생각한 결과값 : "S098765"
함수 결과값 : "98765"
위의 두 실험식의 값을 토대로 다시 개념을 정리후
실험식 : _$ (vl-string-left-trim "0-PS-" "0-PS-S98700011")
내가 생각한 결과값 : "11"
함수 결과값 : "98700011"
vl-string-left-trim 함수 .... 쉬운것 같기도 하면서도 어렵네요..ㅠㅠ
⑥ 스크린샷(동영상) :
※ 유의사항
- ①말머리 : 말머리를 달아야 구분이 쉽겠죠^^
- ②Screenshot : 이해를 돕기위해 삽입요망.
- ③파일 첨부 : 상위버전에서 테스트할 파일이 아니면 가급적 하위버전으로 저장후 첨부.
해당리습도 같이 첨부하여 주세요.
- ④제 목 : 질문 내용 반영(개략적인 내용), 예) 해치를 만들고 싶어요, pline을 연결할려면?
- ⑤질문글 삭제금지 : 질문후 댓글이 달린글은 삭제금지.
여러 리플러들이 소중한 시간을 내어서 고민한후 댓글을 작성한 이상 "강력조치" 토록 하겠음.
※ 정답만이 댓글은 아닙니다. 그 답이 맞던 틀리던 그건 그 댓글로서 존중되어야 합니다.
회원님들이 글을 읽었다는것과 댓글을 달았다는건 그만큼 관심을 가지고 있고 또 그 답을 해주기 위해
검색도 해보고 도움말도 보고 고민도 하는 일련의 과정을 거치면서 나오기 때문이죠.
이에 대한 고마움과 감사함을 모르는 테러행위(?)는 없었으면 합니다.
첫댓글 저도..첨에 이거 이해하는데..좀 힘들더군요..^^;
일단... 프롤로거님 파이팅! ^^*
저도 잘 모르지만..일단 제가 아는 범위내에서 설명 드리자면...^^;
(vl-string-left-trim character-set string) <- 여기서.. character-set 이부분의 값은...
순서대로가 아니라...있는 문자별로 되는거 같드라구요..^^;;
한마디로...프롤로거님이 설명하셨던거 처럼...
실험식 : _$ (vl-string-left-trim "0-PS-" "0-PS-P1234567")
내가 생각한 결과값 : "P1234567"
함수 결과값 : "1234567"
.. 여기서 보면...
"0-PS-" <- 이걸..배열대로 찾는게 아니라...저기에 있는 문자들을 각 각 찾는겁니다...왼쪽에서 부터요...^^;
그러니...P는 다 없어지고... 1234567만 남겨 되는거죠..^^;
오히려 지금과 같은 경우라면...
(vl-string-subst new-str pattern string [start-pos]) <- 이게 더 나을 듯 싶습니다^^*
3:16님 자세한 답변 감사합니다.. 저역시 character-set 부분이 "문자별로 삭제"하는것은 눈치챘는데, 3번째실험식에서 뭔가 조금 삐꺽거리네요..
"문자별로 삭제"라면 3번째 실험식에서 "11"이 남아야 되는데.. 또 그건 아니더군요..ㅠㅠ
그리고 추천해주신 vl-string-subst 함수가 문자바꿀때는 훨씬 편리하네요..^^ 감사합니다..
저도 아는게 별로 없어서리..^^;;; 영광입니다^^* ㅎㅎ
3번째가..왜 11만 남는다고 생각하시는지 모르겠네요?^^;;; ㅎㅎ
아..왜 그런 착각을 하셨는지..^^;; 어찌 설명을 드려야 할지...음... 그러니까... 이게요..ㅎㅎ
중요한건...왼쪽에서 부터 입니다...
그러니까...비교되는 문자열이...젤 왼쪽이여야 적용이 되는거죠..^^;
vl-string-left-trim <- 여기서 말하는 left가..핵심인거죠^^*
한마디로... 비교하는 문자열이...맨 왼쪽이 있을때만..적용이 됩니다^^*
3번째에서... "98700011" <- 이렇게 나오는 이유는... 여기서 있는 0의 앞에있는 987은...비교조건이 아니니까... 그 뒤에 있는 0들은.. left라는 조건에 어긋나게 되는겁니다^^;;;
저도 설명 드리는데 장애가 있어서 똑바로 설명 드렸나 모르겠네요... ^^;;
3:16님 감사합니다.. 감 잡았습니다^^ character-set에 문자가 들어있으면, 왼쪽에서부터 삭제해 나가되, 삭제할 문자가 없다면 그곳에서부터 결과값이 나오는거군요.. (근데 저도 설명 바로 했는지 모르겠네요..) 3:16님 짱~~ 감사합니다..
ㅎㅎㅎㅎ
3:16님 설명듣고 예문 다시만들어 해봤습니다..
실험식 : _$ (vl-string-left-trim "0-PS-" "0-PS-S0A98700PPSS")
내가 생각한 결과값 : "A98700PPSS"
함수 결과값 : "A98700PPSS" ----일치----
감사합니다 3:16님.. 확실하게 개념 정리된것 같네요...^^
아~다행입니다^^* 헤헤~~ㅎㅎ
welcome~^^*
당연히 vl-string-right-trim은...오른쪽 부터구요^^* ㅎㅎ
저도 이거..일일이 다 해보고 알아낸겁니당..ㅠㅠ
제가... 워낙에 이해력이 딸리는 놈이라..무조건 부딪혀 보는거져 머.. ㅎㅎㅎㅎ
그럼??
(vl-string-left-trim "0PS" "0-PS-S0A98700PPSS") ... <- 이거는 어케 될까요?^^* ㅎㅎ
당근...맨앞의 0만...사라진 꼴이 되겠쬬..^^
-PS-S0A98700PPSS 일케요^^*
3:16님..... 이 기회에 "3:16과 함께하는 vl-lisp"강좌 하나 만들어 보시는게.....^^
저..꼴랑..아는거 하나 나와서리..^^;;;
장담합니다
저보다 프롤로거님이 리습 훨씬 더 많이 아실껄요
와우~3:16님 수고하셨습니다.^^
고수님들이...이런말씀해주심..놀리시는거 같아서..손발이 오그라듭니당..