Hàm Lisp ngắt chia chuỗi
Hàm SPLIT : Ngắt chia chuỗi - Cấu trúc : (split strg find) - strg : chuỗi cần ngắt, find : kí hiệu ngắt. Hàm UBOUND : Trả về số lượng phần tử - Cấu trúc : (ubound lisd) - lisd : danh sách
Ví dụ : (split "1.23 ; 2.34 ; 3.02" ";") trả về ("1.23" "2.34" "3.02"); (ubound (list "1.23 ; 2.34 ; 3.02")) trả về 1; (ubound (list "1.23" "2.34" "3.02")) trả về 3
Định nghĩa hàm :
(defun Split(strg find) (vl-load-com)
(setq len (strlen find) lis nil) (while (setq num (vl-string-search find strg))
(setq lis (append lis (list(substr strg 1 num))) strg (substr strg (+ num len 1))
num (vl-string-search find strg))) (append lis (list strg)))
(defun Ubound(lisd) (setq i 0) (while (nth i lisd) (setq i(1+ i))) i)