Chuyển đến nội dung
Diễn đàn CADViet
xuanduc1031

nhờ chỉnh sửa lisp phân biệt (tab) và (cách) trong text

Các bài được khuyến nghị

chào mọi người, mình vừa sưu tầm được 1 lisp cũng tương đối theo đúng ý mình,nhưng lại không phân biệt được bảng exced có dấu "tab" và dấu cách, giờ mình muốn lisp đó phân biệt được thì làm thế nào? nhờ mọi người giúp với

http://www.cadviet.com/upfiles/4/131349_pgload123.lsp

file txt của mình là đây

http://www.cadviet.com/upfiles/4/131349_dc_13.txt

còn về cad thì chỉ cần 1 số là trùng với số thứ tự đầu tiên là nó chạy

cảm ơn mọi người nhiều!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
;                                        DANG XUAN DUC - TEL: 0987987785 
;                      ch­¬ng tr×nh xuÊt tõ exed sang cad, hæ trî phiªn b¶n Autocad r14
;=================================================================
(defun c:gload123( / tl ent i n mangthuc ents ten x y fin f mang tt_chu tct dt dt1
 dt2 dt3 dt4 dt5 dt6 dt7 dt8 dt9 dt10 dt11 dt12 dt13 dt14 dt15 dt16 dt17 dt18 dt19
 lrd ptct tam xl xr xlrd ylrd ytt_chu xtct xdt xdt1 xdt2 xdt3 xdt4 xdt5 xdt6 
xdt7 xdt8 xdt9 xdt10 xdt11 xdt12 xdt13 xdt14 xdt15 xdt16 xdt17 xdt18 xdt19
 ytct ydt ydt1 ydt2 ydt3 ydt4 ydt5 ydt6 ydt7 ydt8 ydt9 ydt10 ydt11 
ydt12 ydt13 ydt14 ydt15 ydt16 ydt17 ydt18 ydt19 tcttxt )

(command "layer" "N" "tct-11" "c" "cyan" "tct-11" "")
(command "layer" "N" "cen-11" "c" "white" "cen-11" "")
                                                                         (command "layer" "lock" "tct" "")
   (command "osnap" "none")
   (setq tbl(tblsearch "layer" "LRD-11"))
   (if(= tbl nil)(command "layer" "N" "lrd-11" "c" "green" "lrd-11" ""))
   (setq tbl(tblsearch "layer" "dt-11"))
   (if(= tbl nil)(command "layer" "N" "dt-11" "c" "white" "dt-11" ""))
      (setq tbl(tblsearch "layer" "dt-111"))
   (if(= tbl nil)(command "layer" "N" "dt-111" "c" "white" "dt-111" ""))
      (setq tbl(tblsearch "layer" "dt-112"))
   (if(= tbl nil)(command "layer" "N" "dt-112" "c" "white" "dt-112" ""))
      (setq tbl(tblsearch "layer" "dt-113"))
   (if(= tbl nil)(command "layer" "N" "dt-113" "c" "white" "dt-113" ""))
      (setq tbl(tblsearch "layer" "dt-114"))
   (if(= tbl nil)(command "layer" "N" "dt-114" "c" "white" "dt-114" ""))
      (setq tbl(tblsearch "layer" "dt-115"))
   (if(= tbl nil)(command "layer" "N" "dt-115" "c" "red" "dt-115" ""))
      (setq tbl(tblsearch "layer" "dt-116"))
   (if(= tbl nil)(command "layer" "N" "dt-116" "c" "red" "dt-116" ""))
      (setq tbl(tblsearch "layer" "dt-117"))
   (if(= tbl nil)(command "layer" "N" "dt-117" "c" "red" "dt-117" ""))
      (setq tbl(tblsearch "layer" "dt-118"))
   (if(= tbl nil)(command "layer" "N" "dt-118" "c" "red" "dt-118" ""))
      (setq tbl(tblsearch "layer" "dt-119"))
   (if(= tbl nil)(command "layer" "N" "dt-119" "c" "red" "dt-119" ""))
      (setq tbl(tblsearch "layer" "dt-1110"))
   (if(= tbl nil)(command "layer" "N" "dt-1110" "c" "red" "dt-1110" ""))
      (setq tbl(tblsearch "layer" "dt-1111"))
   (if(= tbl nil)(command "layer" "N" "dt-1111" "c" "red" "dt-1111" ""))
      (setq tbl(tblsearch "layer" "dt-1112"))
   (if(= tbl nil)(command "layer" "N" "dt-1112" "c" "red" "dt-1112" ""))
      (setq tbl(tblsearch "layer" "dt-1113"))
   (if(= tbl nil)(command "layer" "N" "dt-1113" "c" "red" "dt-1113" ""))
      (setq tbl(tblsearch "layer" "dt-1114"))
   (if(= tbl nil)(command "layer" "N" "dt-1114" "c" "red" "dt-1114" ""))
      (setq tbl(tblsearch "layer" "dt-1115"))
   (if(= tbl nil)(command "layer" "N" "dt-1115" "c" "red" "dt-1115" ""))
      (setq tbl(tblsearch "layer" "dt-1116"))
   (if(= tbl nil)(command "layer" "N" "dt-1116" "c" "red" "dt-1116" ""))
      (setq tbl(tblsearch "layer" "dt-1117"))
   (if(= tbl nil)(command "layer" "N" "dt-1117" "c" "red" "dt-1117" ""))
      (setq tbl(tblsearch "layer" "dt-1118"))
   (if(= tbl nil)(command "layer" "N" "dt-1118" "c" "red" "dt-1118" ""))
      (setq tbl(tblsearch "layer" "dt-1119"))
   (if(= tbl nil)(command "layer" "N" "dt-1119" "c" "red" "dt-1119" ""))
   (setq tbl(tblsearch "layer" "tt_chu-11"))
   (if(= tbl nil)(command "layer" "N" "tt_chu-11" "c" "cyan" "tt_chu-11" ""))
   (setq tl(getvar "dimcen") p(list 10 10)) 
   (setq ent(ssget "X" (list (cons 8 "tct")(cons 0 "text"))))
   (if(= ent nil)(alert "b¹n ph¶i nhËp sè hå s¬ tr­íc khi load vµo th«ng tin vµo !!!"))
   (if(/= nil ent)
   (progn 
      (setq i 0 n(sslength ent) mangthua())
      (while (< i n)
         (setq ents(entget(ssname ent i)))
         (setq tcu(ATOI(cdr(assoc 1 ents))))
         (setq x(cadr (assoc 11 ents)) y(caddr (assoc 11 ents)))
         (setq y(- y tl))
         (setq mangthua(append mangthua (list (list tcu (list x y)))))
                     (setq caomoi(cons 40 (* tl 1.5)))
                     (setq ents(subst caomoi (assoc 40 ents) ents))
                     (entmod ents)
         (setq i(+ i 1))
      )
      (setq mang()) 
     (command "textstyle" "vntime") 
     (setq fin(getfiled " §Æng Xu©n §øc - TEL : 0987 987 785 " "*.xlw" "xlw" 12)) 
      (setq ftct (open fin "r"))
      (if  ftct 
         (progn
             (while (setq inrec(read-line ftct))
             (if (/= nil inrec)
             (progn
                 (arrayele inrec)
                 (if(/= nil $$$)
                    (progn 
                       (setq tct(atoi (nth 0 $$$))	tt_chu(nth 1 $$$)	dt(nth 2 $$$)	dt1(nth 3 $$$)	dt2(nth 4 $$$)	dt3(nth 5 $$$)	dt4(nth 6 $$$)	dt5(nth 7 $$$)	dt6(nth 8 $$$)	dt7(nth 9 $$$)	dt8(nth 10 $$$)	dt9(nth 11 $$$)	dt10(nth 12 $$$)	dt11(nth 13 $$$)	dt12(nth 14 $$$)	dt13(nth 15 $$$)	dt14(nth 16 $$$)	dt15(nth 17 $$$)	dt16(nth 18 $$$)	dt17(nth 19 $$$)	dt18(nth 20 $$$)	dt19(nth 21 $$$)	lrd(nth 22 $$$))
                       (if (= nil lrd)(setq lrd "&"))
                       (timtctSH tct)
                       (setq mang(append mang(list (list tct tt_chu dt dt1 dt2 dt3 dt4 dt5 dt6 dt7 dt8 dt9 dt10 dt11 dt12 dt13 dt14 dt15 dt16 dt17 dt18 dt19 lrd ptct))))
                    )
                 )     
             )))
         )
      )             
      (setq i 0 n(length mang) mangthua nil)
      (while (< i n)
          (setq tam(nth i mang))
          (setq tct(itoa (nth 0 tam))
 tt_chu(nth 1 tam) dt(nth 2 tam) dt1(nth 3 tam)	dt2(nth 4 tam)	dt3(nth 5 tam)	dt4(nth 6 tam)	dt5(nth 7 tam)	dt6(nth 8 tam)	dt7(nth 9 tam)	dt8(nth 10 tam)	dt9(nth 11 tam)	dt10(nth 12 tam)	dt11(nth 13 tam)	dt12(nth 14 tam)	dt13(nth 15 tam)	dt14(nth 16 tam)	dt15(nth 17 tam)	dt16(nth 18 tam)	dt17(nth 19 tam)	dt18(nth 20 tam)	dt19(nth 21 tam)	 lrd(nth 22 tam)	 p(nth 23 tam))
          (if (/= p nil)
          (progn
             (setq x(car p) y(cadr p))
            (setq xl(- x (* tl 20.2)) xr(+ x (* tl 20.0)) )
             (setq xlrd(- x (* tl 81.06)) ylrd(- y (* tl 15.00)))
             (setq ytct(- y (* tl 5.00)) ytt_chu(- y (* tl 15.00)))
                                     (setq xdt(- x (* tl 15.00)) ydt(- y (* tl 11.31)))
                                                            (setq xdt1(- x (* tl 121.06)) ydt1(- y (* tl 21.06)))
                                                            (setq xdt2(- x (* tl 5.00)) ydt2(- y (* tl 13.31)))
                                                            (setq xdt3(- x (* tl 15.00)) ydt3(- y (* tl 14.31)))
                                                            (setq xdt4(- x (* tl 16.00)) ydt4(- y (* tl 15.31)))
                                                            (setq xdt5(- x (* tl 18.00)) ydt5(- y (* tl 16.31)))
                                                            (setq xdt6(- x (* tl 35.00)) ydt6(- y (* tl 17.31)))
                                                            (setq xdt7(- x (* tl 65.00)) ydt7(- y (* tl 18.31)))
                                                            (setq xdt8(- x (* tl 25.00)) ydt8(- y (* tl 19.31)))
                                                            (setq xdt9(- x (* tl 36.00)) ydt9(- y (* tl 20.31)))
                                                            (setq xdt10(- x (* tl 45.00)) ydt10(- y (* tl 21.31)))
                                                            (setq xdt11(- x (* tl 157.00)) ydt11(- y (* tl 22.31)))
                                                            (setq xdt12(- x (* tl 12.00)) ydt12(- y (* tl 23.31)))
                                                            (setq xdt13(- x (* tl 234.00)) ydt13(- y (* tl 24.31)))
                                                            (setq xdt14(- x (* tl 543.00)) ydt14(- y (* tl 25.31)))
                                                            (setq xdt15(- x (* tl 76.00)) ydt15(- y (* tl 26.31)))
                                                            (setq xdt16(- x (* tl 89.00)) ydt16(- y (* tl 27.31)))
                                                            (setq xdt17(- x (* tl 198.00)) ydt17(- y (* tl 28.31)))
                                                            (setq xdt18(- x (* tl 654.00)) ydt18(- y (* tl 29.31)))
                                                            (setq xdt19(- x (* tl 23.00)) ydt19(- y (* tl 30.31)) )
   ;          (command "layer" "s" "cen-11" "")
    ;         (command "line" (list xl y) (list xr y) "")
             (command "layer" "s" "tct-11" "")
             (command "text" "j" "c" (list x ytct) (* tl 2.0) "0" tt_chu)
             (command "layer" "s" "dt-11" "")
             (command "text" "j" "tc" (list x ydt) (* tl 2.0) "0" dt)
			              (command "layer" "s" "dt-111" "")
             (command "text" "j" "tc" (list xdt1 ydt1) (* tl 2.0) "0" dt1)
			              (command "layer" "s" "dt-112" "")
             (command "text" "j" "tc" (list xdt2 ydt2) (* tl 2.0) "0" dt2)
			              (command "layer" "s" "dt-113" "")
             (command "text" "j" "tc" (list xdt3 ydt3) (* tl 2.0) "0" dt3)
			              (command "layer" "s" "dt-114" "")
             (command "text" "j" "tc" (list xdt4 ydt4) (* tl 2.0) "0" dt4)
			              (command "layer" "s" "dt-115" "")
             (command "text" "j" "tc" (list xdt5 ydt5) (* tl 2.0) "0" dt5)
			              (command "layer" "s" "dt-116" "")
             (command "text" "j" "tc" (list xdt6 ydt6) (* tl 2.0) "0" dt6)
			              (command "layer" "s" "dt-117" "")
             (command "text" "j" "tc" (list xdt7 ydt7) (* tl 2.0) "0" dt7)
			              (command "layer" "s" "dt-118" "")
             (command "text" "j" "tc" (list xdt8 ydt8) (* tl 2.0) "0" dt8)
			              (command "layer" "s" "dt-119" "")
             (command "text" "j" "tc" (list xdt9 ydt9) (* tl 2.0) "0" dt9)
			              (command "layer" "s" "dt-1110" "")
             (command "text" "j" "tc" (list xdt10 ydt10) (* tl 2.0) "0" dt10)
			              (command "layer" "s" "dt-1111" "")
             (command "text" "j" "tc" (list xdt11 ydt11) (* tl 2.0) "0" dt11)
			              (command "layer" "s" "dt-1112" "")
             (command "text" "j" "tc" (list xdt12 ydt12) (* tl 2.0) "0" dt12)
			              (command "layer" "s" "dt-1113" "")
             (command "text" "j" "tc" (list xdt13 ydt13) (* tl 2.0) "0" dt13)
			              (command "layer" "s" "dt-1114" "")
             (command "text" "j" "tc" (list xdt14 ydt14) (* tl 2.0) "0" dt14)
			              (command "layer" "s" "dt-1115" "")
             (command "text" "j" "tc" (list xdt15 ydt15) (* tl 2.0) "0" dt15)
			              (command "layer" "s" "dt-1116" "")
             (command "text" "j" "tc" (list xdt16 ydt16) (* tl 2.0) "0" dt16)
			              (command "layer" "s" "dt-1117" "")
             (command "text" "j" "tc" (list xdt17 ydt17) (* tl 2.0) "0" dt17)
			              (command "layer" "s" "dt-1118" "")
             (command "text" "j" "tc" (list xdt18 ydt18) (* tl 2.0) "0" dt18)
			              (command "layer" "s" "dt-1119" "")
             (command "text" "j" "tc" (list xdt19 ydt19) (* tl 2.0) "0" dt19)
			 
             (if (/= lrd "&")
                (progn
                    (command "layer" "s" "lrd-11" "")
                    (command "text" "j" "mc" (list xlrd ylrd) (* tl 1.8) "0" lrd)
            (command "layer" "Freeze" "tt_chu" "")
            (command "layer" "Freeze" "lrd" "")
            (command "layer" "Freeze" "tc1t" "")
            (command "layer" "Freeze" "to_bd" "")
            (command "layer" "Freeze" "thuatam" "")
            (command "layer" "Freeze" "dt" "")
            (command "layer" "Freeze" "cen" "")
            (command "layer" "Freeze" "sh_mia" "")
            (command "layer" "Freeze" "diem" "")
            (command "layer" "Freeze" "code" "")
                )
             )  
          ))
 
         (setq i(+ i 1))
      )
   )) ; if ent <> nil
 
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;------------------------------------------------------------------------------------------------------------------------------------------------

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

- lsp hơi dài ^^, bạn thử đưa file minh họa bạn chạy với lsp này, mọi người chạy thử để nắm vấn đề rùi mới sữa thử theo y/c của bạn ^^

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

-lsp dành cho phiên bản cadr14 ^^, trong đó có 2 hàm con arrayele, timtctSH nhoc không thấy trong lsp, nếu hàm có sẵn nhoc dò thử gù gồ chưa ra, mún test nhưng báo lỗi ^^, file định dạng xlw chắc định dạng cũ hay sao, excel 2007 nhoc kím cũng ko có :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

nghĩa là trong 1 dòng thì cứ đến 1 tab nó mới phân ra 1 cột, chứ ở lisp này không phải như vậy

lisp này cứ đến dấu cách hay đến tab là nói nhận dòng, 

vậy mình muốn lisp này sẽ nhận cột khi nó đến dấu tab

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

VD: 

2 Đào Thị Nữ 1967 0.0 Thôn Hà Thôn

2(tab)Đào(khoảng cách)Thị(khoảng cách)Nữ(tab)1967(tab)0.0(tab)Thôn(khoảng cách)(khoảng cách)Thôn

thì giữa đào thị nó tách ra mình muốn nó không tách ra vì đó là "dấu cách"

còn mình muốn tách ra thì giữa (Nữ 1967) được nhận biết bằng "tab" nên nó sẽ nhận biết và tách ra

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

" b¹n ph¶i nhËp sè hå s¬ tr­íc khi load vµo th«ng tin vµo ! "

bạn chỉ cần tạo 1 số đầu tiên của dòng vd: số 2 đặt layer là tct thì nó sẽ nhận cả dòng exced đó mà

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×