Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
Doan Van Ha

[Quà biếu] Tạo Menu lệnh thường dùng

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

Tuyệt :wub:

Bác DVH có thể thêm 1 dòng ktra file, thêm kết quả trả về (cho đúng nghĩa là function) thì đẹp.

List dstxt có thể reverse sau khi đã có list hoàn thiện, tránh đảo đi đảo lại nếu gặp file có quá nhiều dòng ^^

Và tất nhiên cũng cần ghi chú Ansi file, vì ghi như thế này là con đường 1 chiều, user có thể ôm hận nếu gặp unicode file ^^

Chúc bác ngày 1 đẻ ra nhiều thứ hay để bọn e mót :wub:

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

Trước đây tôi hay làm như Bác (tức là tạo file tạm trung gian sau đó delete nó). Sau này tôi chuyển qua list cho khỏe hơn. Xin gởi Bác.

; (setq filetxt "D:\\...\\Duy.txt")
; (setq noidung "efghk")
(defun XOA_DONG(filetxt noidung / dstxt file PR n)
(setq file (open filetxt "r"))
(setq dstxt '())
(while (setq PR (read-line file))
 (if (/= PR noidung)
  (setq dstxt (reverse (cons PR (reverse dstxt))))))
(close file)
(setq file (open filetxt "w"))
(foreach n dstxt
 (write-line n file))
(close file)
(princ))

 

Sao cad nó báo đối số quá ít vậy bác:

(defun XOA_DONG(filetxt noidung / dstxt file PR n)

(setq filetxt "c:\\testthu.txt")
(setq noidung "dongnaysua")

(setq file (open filetxt "r"))
(setq dstxt '())
(while (setq PR (read-line file))
 (if (/= PR noidung)
  (setq dstxt (reverse (cons PR (reverse dstxt))))))
(close file)
(setq file (open filetxt "w"))
(foreach n dstxt
 (write-line n file))
(close file)
(princ))

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

Tuyệt :wub:

Bác DVH có thể thêm 1 dòng ktra file, thêm kết quả trả về (cho đúng nghĩa là function) thì đẹp.

List dstxt có thể reverse sau khi đã có list hoàn thiện, tránh đảo đi đảo lại nếu gặp file có quá nhiều dòng ^^

Và tất nhiên cũng cần ghi chú Ansi file, vì ghi như thế này là con đường 1 chiều, user có thể ôm hận nếu gặp unicode file ^^

Chúc bác ngày 1 đẻ ra nhiều thứ hay để bọn e mót :wub:

1). "Tuyệt", nhưng cao thủ võ lâm quên bấm "+".

2). Các góp ý đều đúng. Còn sửa thì mọi người tự sửa cho vui cửa vui nhà, vì không khó. Post lên lại hao đất.

3). Thậm chí trong hàm còn dư dòng (setq dstxt '())... Tất cả đều do viết vội, mong sorry.

Thân thương!

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

Cách làm của tôi như thế này:

1). Mở file txt để read.

2). Duyệt từng dòng, nếu dòng nào không trùng với "noidung" thì cho nó vào 1 list, đóng file.

3). Mở txt để write từng dòng từ list, đóng file. Thế là được file có "noidung" đã bị xóa.

Nếu Bác bận lắm thì chiều nay tôi viết giùm bác vậy.

Thân thương!

Cái dòng (close file) cũng bị dư, có thể bỏ được, nhưng không ảnh hưởng gì :rolleyes:

.....

(while (setq PR (read-line file))

(if (/= PR noidung)

(setq dstxt (reverse (cons PR (reverse dstxt))))))

(close file)

(setq file (open filetxt "w"))

.....

@Anh Duy782006: Anh kiểm tra lại xem. Lisp chạy không có lỗi

  • Vote tăng 1

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

1). "Tuyệt", nhưng cao thủ võ lâm quên bấm "+".

2). Các góp ý đều đúng. Còn sửa thì mọi người tự sửa cho vui cửa vui nhà, vì không khó. Post lên lại hao đất.

3). Thậm chí trong hàm còn dư dòng (setq dstxt '())... Tất cả đều do viết vội, mong sorry.

Thân thương!

Các ý kiến đều đúng, nhưng cao thủ đại nội cũng không bấm "+" : :lol:

Hehe, đùa vậy thôi.

Ket Cũng góp ý luôn là trong phần loại bỏ biến cục bộ, n bị dư, bởi bản thân n đã bị khử thành nil ngay sau foreach. Mình thấy rất nhiều người cẩn thận loại bỏ biến này, mặc dù bản thân nó hem còn ^^

  • Vote tăng 1

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

Đánh lệnh CUI được window như sau:

Hy vọng giúp được bạn!

 

(Hình lấy trên net)

originalvmpbl-1px-1.jpg

Cám ơn bạn Detailing!

Mặc dầu chỉ "gắp, bỏ, thả, gõ" thôi, nhưng để soạn thảo một menu các lệnh thường dùng bằng cách dùng lệnh CUI thì cũng khá nhiêu khê. Vì vậy, tôi đã mày mò để ghi lại từng bước (xem link), để ai cần thì dùng, còn ai rành 6 câu rồi thì cũng bỏ quá cho, đừng chấp trách làm gì.

http://www.cadviet.com/upfiles/3/tao_menu_bang_cui_1.doc

Theo thiển nghĩ của tôi: xem ra, nếu rành MNS (MNU) thì soạn thảo Menu là nhanh nhất, chứ dùng CUI thì cũng không nhanh lắm.

Thân thương!

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

Cám ơn bạn Detailing!

Mặc dầu chỉ "gắp, bỏ, thả, gõ" thôi, nhưng để soạn thảo một menu các lệnh thường dùng bằng cách dùng lệnh CUI thì cũng khá nhiêu khê. Vì vậy, tôi đã mày mò để ghi lại từng bước (xem link), để ai cần thì dùng, còn ai rành 6 câu rồi thì cũng bỏ quá cho, đừng chấp trách làm gì.

.........

Theo thiển nghĩ của tôi: xem ra, nếu rành MNS (MNU) thì soạn thảo Menu là nhanh nhất, chứ dùng CUI thì cũng không nhanh lắm.

Thân thương!

Tue_NV nghĩ điều ngược lại : Lệnh Cui, nó nhanh hơn là sử dụng cách soạn thảo MNU vì nó rất trực quan. Kéo, bốc, thả gõ đến đâu, hình ảnh nó thêm đến đấy. Thêm, sửa, xóa image rất hiệu quả nữa. Hơn nữa, nó còn có những tính năng khác như tạo Shortcut Key hoặc là Load Lisp chẳng hạn và các tính năng Macro mà bạn chưa tìm hiểu tới....

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

Cám ơn bạn Detailing!

Mặc dầu chỉ "gắp, bỏ, thả, gõ" thôi, nhưng để soạn thảo một menu các lệnh thường dùng bằng cách dùng lệnh CUI thì cũng khá nhiêu khê. Vì vậy, tôi đã mày mò để ghi lại từng bước (xem link), để ai cần thì dùng, còn ai rành 6 câu rồi thì cũng bỏ quá cho, đừng chấp trách làm gì.

Theo thiển nghĩ của tôi: xem ra, nếu rành MNS (MNU) thì soạn thảo Menu là nhanh nhất, chứ dùng CUI thì cũng không nhanh lắm.

Thân thương!

Chào bạn,

Thấy bạn nói chưa biết nên mình Google dùm thôi.

Cách của bạn cũng hay, code rất công phu, đơn giản, dễ dùng cho những bạn mới sử dụng nhưng mình khuyên bạn ko nên tiếp tục phát triển cho nó vì ko thể bằng lệnh CUI của CAD dc.

Thâ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

Cách của bạn cũng hay, code rất công phu, đơn giản, dễ dùng cho những bạn mới sử dụng nhưng mình khuyên bạn ko nên tiếp tục phát triển cho nó vì ko thể bằng lệnh CUI của CAD dc.

Tôi làm cái này chỉ để phục vụ cho các bạn chưa rành về tạo menu, và qua nhiều góp ý thì nên dừng ngang đó là đủ rồi. Còn các bạn rành hơn thì có thể dùng CUI vì nó pro hơn. Riêng tôi, từ xưa tới giờ chỉ viết trên file MNS. Quen rồi thành ra nó tiện lợi với mình.

Thân thương!

  • Vote tăng 2

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

Đăng nhập để thực hiện theo  

×