AutoCAD/Lisp

문자열 함수

Jaybi 2021. 4. 7. 10:55

파일을 이용하지 않는 프로그램을 작성한다면 문자열 관련 함수는 그리 크게 필요하지 않지만,   AutoLISP에서는 파일에

쓰거나, 읽는 모든 데이터를 문자열로 처리하기 때문에 뒤에 나오는 변환 함수와 더불어 문자열 함수는 매우 중요하다고

할 수 있습니다.

조건 함수와 변환 함수, 문자열 함수를 상황에 맞게 잘 활용한다면 여타의 프로그래밍 언어가 부러울 것이 없습니다.

 

1. chr

(1) 기능

지정한 숫자나, 숫자가 저장된 변수를 ASCII Code 값의 문자로 출력합니다.

(2) 사용법

(Chr ASCII-Code)  or  (Chr Variable)

(3) 예

 

 (setq a (chr 65))

 : !a = "A"

 (setq b (chr 97))

 : !b = "a"

 (setq c (chr 66))

 : !c = "B"

 (setq c 66)

 

 (setq d (chr c))

 : !d = "B"

 

 

2. strlen

(1) 기능

지정한 문자열이나, 문자열이 저장된 변수의 문자열 길이를 출력합니다.

(2) 사용법

(Strlen "String") or (Strlen Variable)

(3) 예

 

 (setq a (strlen "PNP")

 : !a = 3

 (setq a "pnp")

 

 (setq b (strlen a)

 : !b = 3

 

 

 

3. substr

(1) 기능

문자열이 저장된 변수나, 문자열에서 지정한 위치에서 지정한 길이만큼 문자열을 출력합니다.

(2) 사용법

(Substr  "String"  Start-Number  Length)  or  (Substr  Variable  Start-Number  Length)

(3) 예

 

 (setq aa (Substr "ABCDEFGHIJKLMN" 3 10))

 : !aa = "CDEFGHIJKL"

 (setq bb (Substr "ABCDEFGHIJKLMN" 3))

 : !bb = "CDEFGHIJKLMN"

 (setq a "ABCDEFGHIJKLMN")

 

 (setq b (substr a 8 20))

 : !b = "HIJKLMN"

 (setq sn 3)

 

 (setq en 5)

 

 (setq cc (substr a sn en))

 : !cc = "CDEFG"

** 참고

길이가 생략되면 문자열의 끝까지 출력합니다.

 

 

4. ascii

(1) 기능

문자나, 문자가 저장된 변수 ASCII Code 값을 출력합니다.

(2) 사용법

(Ascii "character")  or  (Ascii Variable)

(3) 예

 

 (setq num (ascii "a"))

 : !num = 97

 (setq snum "a")

 

 (setq num (ascii snum))

 : !num = 97

 (setq num (ascii "abcd"))

 : !num = 97

** 참고

문자열을 경우 첫 글자에 해당하는 Code 값을 출력합니다.

 

 

5. strcat

(1) 기능

문자열 또는 문자열이 저장된 변수를 연결하여 새로운 문자열을 만듭니다.

(2) 사용법

(Strcat  "String" "String" …) or (Strcat  Variable  Variable …)

(3) 예

 

 (setq a "DMZ")

 

 (setq b "Korea")

 

 (setq c (strcat a b))

 : !c = "DMZKorea"

 (setq d (strcat a "," b))

 : !d = "DMZ,Korea"

 (setq e (strcat "DMZ" "," "korea"))

 : !e = "DMZ,Korea"

 

 

6. 예제 프로그램

 

출처 : www.lispcenter.net/Lisp/Lisp_15.htm