Đến nội dung


Hình ảnh
- - - - -

Tiếng Việt trong hộp thoại Acad - Phần II


  • Please log in to reply
87 replies to this topic

#1 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 15 April 2011 - 04:12 PM

Tiếng Việt trong hộp thoại Acad
Trong phần “Tiếng Việt trong hộp thoại Acad” - phần I , dựa trên tổng hợp chất xám của CADViet, tôi đã trình bày tóm tắt các bước để có thể đưa tiếng Việt lên hộp thoại Acad, như sau:
1. Phải sử dụng Cad từ 2007 trở về sau.
2. Trong Window: phải chuyển font về 1 font Unicode nào đó (thường đã mặc định).
3. Trong Cad: phải chuyển font của dòng command về “Courier New” (thường đã mặc định).
4. Tải file chuyển font của Bác Hoành về trong chương trình của mình (file “cadvietlisp.lsp” ở trong phần I), hoặc ngay trong link upload dưới đây của tôi cũng đã có.
5. Soạn thảo tiếng Việt các file lisp bằng mã TCVN3-ABC. Trong các file này dòng nào muốn hiển thị tiếng Việt ở Dialog hoặc Command thì dùng hàm chuyển đổi (TCVN3-Unicode “Tiếng Việt”).
Tuy nhiên, vấn đề đến đây vẫn chưa được giải quyết triệt để, vì vẫn chưa có tiếng Việt:
1. Nếu các file DCL được viết riêng mà không viết trực tiếp vào file LSP.
2. Nếu tiếng Việt nằm trong các Menu.
Bài này sẽ trình bày tiếp 2 vấn đề trên:
1). Thủ thuật chuyển tiếng Việt trong file DCL lên hộp thoại:
- Tải file chứa hàm (DCL_VN tenfile tendialog) về máy.
- Trong file DCL: hãy viết tiếng Việt bằng TCVN3-ABC.
- Trước khi gọi Dialog hãy tạo ra 1 file DCL tạm. Trong file DCL tạm này ta mở, đọc và chuyển từng dòng của nó sang tiếng Việt bằng hàm (TCVN3-Unicode...), rồi đóng file lại. Tiếp đến ta gọi Dialog của file tạm này; nếu xử lý trên Dialog xong thì xóa file tạm luôn.
- Ví dụ dưới đây trình bày một cách gọi Dialog có tên là “TEST” thuộc file “TEST.DCL” bằng hàm (DCL_VN “TEST.DCL” “TEST”).
2). Thủ thuật chuyển tiếng Việt trong file MNU lên hộp thoại:
- Khi viết Menu chúng ta viết trên file MNU. Từ Cad2005 về trước thì Menu được hiển thị bởi file MNU, từ Cad2006 về sau (hình như thế?) nó được hiển thị bởi file CUI. File này “tự sinh ra” khi tải file MNU (từ Cad2006).
- File MNU không thể viết tiếng Việt bằng Unicode, nhưng file CUI thì viết tiếng Việt bằng Unicode vô tư (dùng phím F4 để mở).
- Dựa vào đó, ta cứ viết file MNU bình thường. Sau đó tải menu bằng hàm (command “menuload”...), nó sẽ tạo ra file CUI. Trên cơ sở file CUI ta có 2 thủ thuật để có tiếng Việt trên Menu như sau:
+ Dùng lệnh CUI để sửa trực tiếp trên khung đối thoại xuất hiện của lệnh. Cách này đơn giản, dễ hình dung.
+ Dùng F4 để mở file CUI, chuyển qua Unicode, đánh tiếng Việt, lưu và khởi động lại Cad.
(chú ý: trong file CUI, các dòng trình đơn con xuất hiện tới 2 lần, trừ dòng trình đơn chính chỉ xuất hiện 1 lần. Ta chỉ sửa các dòng bắt đầu từ dòng trình đơn chính trở xuống cuối file là được). Cách này hơi rắc rối vì file CUI rất ư... lòng thòng.
Bác nào có chiêu hay hơn thì xin trình làng để CADViệt được nhờ.
http://www.cadviet.c.../tieng_viet.zip
  • 3

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#2 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 15 April 2011 - 08:16 PM

sao lại fải mở lắm topic về cùng 1 vấn đề thế nhỉ? bác cứ post bài vào topic cũ thì có chết thằng tây nào đâu? hoặc nếu muốn đưa nội dung này lên đầu topic để mọi người dễ tiếp cận thông tin thì chỉ việc edit cái bài đầu tiên của topic kia (vì chính bác cũng là chủ topic). như thế vừa tiện để người vào sau có thể theo dõi, cũng vừa đỡ rác diễn đàn.
Giờ ai đó mà search nội dung này sẽ thấy lòi ra tới ít nhất 4 cái topic (trong đó có 2 cái tạo cách nhau có mấy ngày bởi cùng 1 người)
  • 1

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#3 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 16 April 2011 - 11:07 AM

Thôi thì bác DVH mất công tổng hợp rồi, e cũng xin góp lại thêm 1 tí.Cũng không biết nên để ở bài nào, đành link bên kia qua đây vậy :)
Vấn đề chỉ bàn trên cơ sở CAD07 trở đi, do e chưa có cơ hội dùng CAD04 (lúc ấy vẫn đang học Toán Lý Hóa ^^).
1.Menu thì hỗ trợ quá tốt Unicode rồi, không tội gì ta không dùng thẳng cui để sửa cho trực quan, sinh động
2. Về tiếng việt trong lisp code cũng như DCL code, hiện nay e nghĩ đã có thể dùng các cách :
- C1 : Add trực tiếp hàm convert vào trong lisp như bác DVH đã tổng hợp bên trên
- C2 : Convert bên ngoài rồi copy vào code :
+ Dùng Cad04 như thủ thuật bác Tuệ nói ( Bung Mtext Unicode)
+ Chạy riêng hàm ở C1 để lấy đoạn string cho vào code
+ Tool nhỏ e dùng để chuyển từ Unicode sang Lisp String e post bên kia rồi, n do dùng Net Frame Work 4 nên nhìu bác chưa xài được, VS của e thì k cho thay đổi bản Net khác ngoài Net4, e đã nhờ bác phamngoctuks chuyển về Net 2, post lại ở đây :)
Changecode
- C3 : Cứ code bằng tiếng Việt bình thường, lưu file, sau đó dùng chương trình duyệt file, convert tất cả ký tự tiếng việt sang mã unicode Hexa (tương lai ^^)
- C4 : Dùng hook keyboard hoặc chức năng AutoCorrect của các chương trình editor. Có thể sử dụng các chương trình type TV hiện nay, tạo 1 bảng gõ tắt :). Cái này có thể đánh trực tiếp trong Code, tuy nhiên phải mất công tạo list 1 lần ^^
- C..

P/S : riêng với em, đoạn này sau hãy tính ^^ Mấy lần viết hộ lisp cũng tí toáy cho tí Tiếng Việt vào gọi là có tí @, xong bị phản hồi ngay là lisp lỗi, là chữ nó blah blah, rằng tớ đang dùng 2004... Mà, cương vị người viết, rất sợ nghe từ "lỗi", nhất là khi nó không phải là "lỗi" ^^
  • 4

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#4 duyhung

duyhung

    biết vẽ rectang

  • Members
  • PipPip
  • 88 Bài viết
Điểm đánh giá: 9 (bình thường)

Đã gửi 16 April 2011 - 11:55 AM

Tiếng việt muốn hiển thị trong table của Autocad thì phải làm thế nào hả các bạn?
VD dùng lisp thống kê block của bác gia_bach mà block đặt tên là tiếng việt mã unicode thì khi thống kê xong insert bảng thì bảng hiển thị có hiển thị tiếng việt không và cách làm?
Thanks all. :)
  • 0
Song va chien dau!

#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 16 April 2011 - 06:18 PM

Tiếng việt muốn hiển thị trong table của Autocad thì phải làm thế nào hả các bạn?
VD dùng lisp thống kê block của bác gia_bach mà block đặt tên là tiếng việt mã unicode thì khi thống kê xong insert bảng thì bảng hiển thị có hiển thị tiếng việt không và cách làm?
Thanks all. :)

Srr, menu và dialog (được viết trong file DCL) thì đã ổn. Còn nội dung thể hiện trong dialog thì có thể từ nhiều nguồn khác nhau: sinh ra từ các lệnh LSP, lấy từ file các dạng TXT, CSV... đưa vào. Tôi sẽ kiểm tra và hy vọng trả lời thấu đáo cho bạn.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 16 April 2011 - 09:31 PM

az......
+ Tool nhỏ e dùng để chuyển từ Unicode sang Lisp String e post bên kia rồi, n do dùng Net Frame Work 4 nên nhìu bác chưa xài được, VS của e thì k cho thay đổi bản Net khác ngoài Net4, e đã nhờ bác phamngoctuks chuyển về Net 2, post lại ở đây :)
Changecode
- C3 : Cứ code bằng tiếng Việt bình thường, lưu file, sau đó dùng chương trình duyệt file, convert tất cả ký tự tiếng việt sang mã unicode Hexa (tương lai ^^)
- C4 : Dùng hook keyboard hoặc chức năng AutoCorrect của các chương trình editor. Có thể sử dụng các chương trình type TV hiện nay, tạo 1 bảng gõ tắt :). Cái này có thể đánh trực tiếp trong Code, tuy nhiên phải mất công tạo list 1 lần ^^
- C..

P/S : riêng với em, đoạn này sau hãy tính ^^ Mấy lần viết hộ lisp cũng tí toáy cho tí Tiếng Việt vào gọi là có tí @, xong bị phản hồi ngay là lisp lỗi, là chữ nó blah blah, rằng tớ đang dùng 2004... Mà, cương vị người viết, rất sợ nghe từ "lỗi", nhất là khi nó không phải là "lỗi" ^^

Thêm 1 công cụ viết bằng Lisp nữa để Convert -> Kết quả ghi luôn ra file txt
có thể lấy chữ trong CAD (button gettext)
Convert. Lệnh CV
  • 1

#7 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 16 April 2011 - 10:26 PM

Thêm 1 công cụ viết bằng Lisp nữa để Convert -> Kết quả ghi luôn ra file txt
có thể lấy chữ trong CAD (button gettext)
Convert. Lệnh CV

Sau khi chạy thì dù viết ở bảng mã nào, e thấy ghi ra file cũng 1 kết quả :) lạ thật
P/S : tại sao lại phải ghi ra file bác nhỉ ??
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 16 April 2011 - 10:38 PM

Sau khi chạy thì dù viết ở bảng mã nào, e thấy ghi ra file cũng 1 kết quả :) lạ thật
P/S : tại sao lại phải ghi ra file bác nhỉ ??

Chưa thử trước khi bác ket có ý kiến. Mới thử xong, thấy chỉ có mỗi kiểu ghi file txt.
Còn convert đến các "nơi" khác thì sao nhỉ?
Và chậm hiểu chỗ này: mục đích để làm gì?
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 16 April 2011 - 11:21 PM

Sau khi chạy thì dù viết ở bảng mã nào, e thấy ghi ra file cũng 1 kết quả :) lạ thật
P/S : tại sao lại phải ghi ra file bác nhỉ ??

Mình vừa thử, nếu nguồn là TCVN3 thì nó giữ nguyên kết quả là TCVN3. còn nếu nguồn là Unicode thì nó xuất kết quả Unicode dạng hexstring.
bác Tue_NV viết tool này bằng lisp. mà nếu để nguyên kết quả như thế thì lisp sẽ lại hiển thị chuỗi kết quả đó dạng bình thường => chuỗi nguồn và chuỗi đích giống hệt nhau.
@Bác Tue_VN: Bác có thể tạo thêm một edit_box cho nó hiển thị chuỗi kết quả trong cùng 1 hộp thoại giống tool của Ketxu đã làm bằng cách thêm 1 dấu gạch chéo (\) vào trước các dấu gạch chéo (\) trong chuỗi kết quả.
Ví dụ: Chuỗi kết quả là: Ti\U+1EBFng vi\U+1EC7t
Thì chuỗi ghi vào edit_box là: Ti\\U+1EBFng vi\\U+1EC7t. khi đó edit_box sẽ hiển thị giống như trên.
như thế có thể xem được kết quả luôn và cũng đỡ fải xuất ra file text cho lằng nhằng bác ạ.

Và chậm hiểu chỗ này: mục đích để làm gì?

Mục đích để copy kết quả trong file text rồi paste vào lisp của bác ấy. giúp chuơng trình lisp thực thi nhanh hơn 1 tý và tiết kiệm được 1 tý tài nguyên của hệ thống vì đỡ fải convert bác ạ. ngoài ra còn dùng vào các mục đích khác nếu cần fải sử dụng đến chỗi Unicode viết theo dạng này.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#10 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 April 2011 - 01:17 AM

- C3 : Cứ code bằng tiếng Việt bình thường, lưu file, sau đó dùng chương trình duyệt file, convert tất cả ký tự tiếng việt sang mã unicode Hexa (tương lai ^^)

Link file update bài :
TV Lisp v2
Update thêm chức năng đọc và ghi file lisp, các bác cứ coding bằng TV unicode thoải mái, lúc nào chuyển thì đem ra convert.Có 1 file lisp đi kèm theo ^^. Các bác phản hồi hộ e.
P/s : Vlide k hỗ trợ hết gõ Unicode, nên có lẽ sắp tới e sẽ bổ sung cả mã TCVN3 vào (hiện giờ code bằng Notepad++ nên chưa để ý cái này lắm ^^)
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#11 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 17 April 2011 - 08:39 AM

Update : Bản convert cho toàn bộ file lisp :
Unicode Lisp String
Update thêm chức năng đọc và ghi file lisp, các bác cứ coding bằng TV unicode thoải mái, lúc nào chuyển thì đem ra convert.Có 1 file lisp đi kèm theo ^^. Các bác phản hồi hộ e.
P/s : Vlide k hỗ trợ hết gõ Unicode, nên có lẽ sắp tới e sẽ bổ sung cả mã TCVN3 vào (hiện giờ code bằng Notepad++ nên chưa để ý cái này lắm ^^)

Cái của bác Ket chuyển Unicode sang ANSI, bác Hoành chuyển TCVN3-ABC sang ANSI, nghĩa là tạo cho người viết 1 tùy chọn ban đầu là viết bằng UNI hay TCVN đều được. Xin góp vài ý nhỏ thế này:
1. Bổ sung luôn cái TCVN vào như bác đã nói.
2. Nếu lưu bởi 1 tên khác nó thì file kết quả là LSP mã ANSI, nhưng lưu đè lên chính nó thì ra LSP mã UNI, mà thằng LSP thì chỉ chơi với mỗi thằng ANSI thôi (bác thử ghi đè xem sao nhé).
3. Giả dụ lưu qua tên khác như điều 2 rồi, tức là đã có thằng LSP mã ANSI, và từ đây chương trình sẽ chạy trên nó. Bây giờ, buồn hoặc vui, muốn bổ sung cái gì đó vào chương trình, thì chẳng lẻ phải lấy cái file "loằng ngoằng" này ra sửa?
==> đề nghị bác thêm 1 phần chuyển từ "loằng ngoằng" sang UNI nữa (để dễ sửa, và sửa xong thì chuyển qua lại).
Chúc bác một ngày chủ nhật "mệt mỏi" nữa! Có gì chưa đúng thì xá giùm, chỉ vì tiếng Việt muôn năm thôi.
Sẵn đây gởi bác file LSP dùng để chuyển 1 file có đuôi bất kỳ từ TCVN3 sang Unicode để bác có thể vận dụng đưa vào dialog của bác cho nhanh.
http://www.cadviet.c...ieng_viet_3.lsp
Có điều, hàm này tạo ra file tạm "filet.*", dùng xong bác phải (vl-file-delete filet).
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 17 April 2011 - 09:20 PM

Cái của bác Ket chuyển Unicode sang ANSI, bác Hoành chuyển TCVN3-ABC sang ANSI, nghĩa là tạo cho người viết 1 tùy chọn ban đầu là viết bằng UNI hay TCVN đều được. Xin góp vài ý nhỏ thế này:
1. Bổ sung luôn cái TCVN vào như bác đã nói.
2. Nếu lưu bởi 1 tên khác nó thì file kết quả là LSP mã ANSI, nhưng lưu đè lên chính nó thì ra LSP mã UNI, mà thằng LSP thì chỉ chơi với mỗi thằng ANSI thôi (bác thử ghi đè xem sao nhé).
3. Giả dụ lưu qua tên khác như điều 2 rồi, tức là đã có thằng LSP mã ANSI, và từ đây chương trình sẽ chạy trên nó. Bây giờ, buồn hoặc vui, muốn bổ sung cái gì đó vào chương trình, thì chẳng lẻ phải lấy cái file "loằng ngoằng" này ra sửa?
==> đề nghị bác thêm 1 phần chuyển từ "loằng ngoằng" sang UNI nữa (để dễ sửa, và sửa xong thì chuyển qua lại).
Chúc bác một ngày chủ nhật "mệt mỏi" nữa! Có gì chưa đúng thì xá giùm, chỉ vì tiếng Việt muôn năm thôi.
Sẵn đây gởi bác file LSP dùng để chuyển 1 file có đuôi bất kỳ từ TCVN3 sang Unicode để bác có thể vận dụng đưa vào dialog của bác cho nhanh.
http://www.cadviet.c...ieng_viet_3.lsp
Có điều, hàm này tạo ra file tạm "filet.*", dùng xong bác phải (vl-file-delete filet).

1. Việc Bổ sung TCVN vào có lẽ không cần thiết lắm. User code bằng toàn bộ unicode, chữ viết Tiếng Việt thường làm ở giai đoạn cuối. Và cái ý thứ 3 đã bổ sung lại cho cái ý này
Cái chữ TCVN đằng nào cũng phải chuyển thành cái chữ loằng ngoằng đó thì việc bổ sung vào thì cũng được nhưng không cần thiết lắm.

2. Ý này thì bạn viết đúng rồi đó.

3. Cái này là quan trọng nhất. Mình đã thực hiện xong tuy còn 1 số điều vướng mắc mà chưa giải quyết được với DCL + Lisp.
a. Edit box trong DCL mình cứ tưởng là có thể ghi nhiều dòng giống như Ketxu, ai ngờ nó ghi có 1 dòng duy nhất? Làm sao có thể viết Text vào trong đó được nhiều dòng trong 1 edit_box??
b. Làm thế nào để ghi dữ liệu ra Clipboard bằng Lisp thực hiện copy trong Edit box???

Các bác có thể giúp cho Tue_NV 2 ý này được không?

@Thaistreetz:
Ví dụ: Chuỗi kết quả là: Ti\U+1EBFng vi\U+1EC7t
Thì chuỗi ghi vào edit_box là: Ti\\U+1EBFng vi\\U+1EC7t. khi đó edit_box sẽ hiển thị giống như trên.

Không thể thực hiện được cách này được bạn. Trước khi làm, Tue_NV đã thử cái này rồi => Kết quả là nguồn và đích giống như 2 giọt nước :rolleyes:

@Ketxu : Mình chưa thực hiện chức năng ghi ra file Lisp, nhưng khi thực hiện chạy file Lisp thì nó ghi trên 1 dòng???
  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 17 April 2011 - 10:17 PM

1. Việc Bổ sung TCVN vào có lẽ không cần thiết lắm. User code bằng toàn bộ unicode, chữ viết Tiếng Việt thường làm ở giai đoạn cuối. Và cái ý thứ 3 đã bổ sung lại cho cái ý này
Cái chữ TCVN đằng nào cũng phải chuyển thành cái chữ loằng ngoằng đó thì việc bổ sung vào thì cũng được nhưng không cần thiết lắm.

2. Ý này thì bạn viết đúng rồi đó.

3. Cái này là quan trọng nhất. Mình đã thực hiện xong tuy còn 1 số điều vướng mắc mà chưa giải quyết được với DCL + Lisp.
a. Edit box trong DCL mình cứ tưởng là có thể ghi nhiều dòng giống như Ketxu, ai ngờ nó ghi có 1 dòng duy nhất? Làm sao có thể viết Text vào trong đó được nhiều dòng trong 1 edit_box??
b. Làm thế nào để ghi dữ liệu ra Clipboard bằng Lisp thực hiện copy trong Edit box???

Các bác có thể giúp cho Tue_NV 2 ý này được không?

@Thaistreetz:
Ví dụ: Chuỗi kết quả là: Ti\U+1EBFng vi\U+1EC7t
Thì chuỗi ghi vào edit_box là: Ti\\U+1EBFng vi\\U+1EC7t. khi đó edit_box sẽ hiển thị giống như trên.

Không thể thực hiện được cách này được bạn. Trước khi làm, Tue_NV đã thử cái này rồi => Kết quả là nguồn và đích giống như 2 giọt nước :rolleyes:

@Ketxu : Mình chưa thực hiện chức năng ghi ra file Lisp, nhưng khi thực hiện chạy file Lisp thì nó ghi trên 1 dòng???


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5451 Bài viết
Điểm đánh giá: 2625 (tuyệt vời)

Đã gửi 17 April 2011 - 10:44 PM

1. Việc Bổ sung TCVN vào có lẽ không cần thiết lắm. User code bằng toàn bộ unicode, chữ viết Tiếng Việt thường làm ở giai đoạn cuối. Và cái ý thứ 3 đã bổ sung lại cho cái ý này
Cái chữ TCVN đằng nào cũng phải chuyển thành cái chữ loằng ngoằng đó thì việc bổ sung vào thì cũng được nhưng không cần thiết lắm.

2. Ý này thì bạn viết đúng rồi đó.

3. Cái này là quan trọng nhất. Mình đã thực hiện xong tuy còn 1 số điều vướng mắc mà chưa giải quyết được với DCL + Lisp.
a. Edit box trong DCL mình cứ tưởng là có thể ghi nhiều dòng giống như Ketxu, ai ngờ nó ghi có 1 dòng duy nhất? Làm sao có thể viết Text vào trong đó được nhiều dòng trong 1 edit_box??
b. Làm thế nào để ghi dữ liệu ra Clipboard bằng Lisp thực hiện copy trong Edit box???

Các bác có thể giúp cho Tue_NV 2 ý này được không?

@Thaistreetz:
Ví dụ: Chuỗi kết quả là: Ti\U+1EBFng vi\U+1EC7t
Thì chuỗi ghi vào edit_box là: Ti\\U+1EBFng vi\\U+1EC7t. khi đó edit_box sẽ hiển thị giống như trên.

Không thể thực hiện được cách này được bạn. Trước khi làm, Tue_NV đã thử cái này rồi => Kết quả là nguồn và đích giống như 2 giọt nước :rolleyes:

@Ketxu : Mình chưa thực hiện chức năng ghi ra file Lisp, nhưng khi thực hiện chạy file Lisp thì nó ghi trên 1 dòng???

1. Tôi đang thắc mắc: tại sao phải viết LSP bằng Unicode mà không phải viết bằng TCVN3? Vì viết bằng Unicode, nếu chưa chuyển qua ANSI, thì khi chạy LSP sẽ báo lỗi ngay. Vì LSP chỉ chơi với ANSI, không chơi với Unicode. Không lẽ cứ viết xong, lại chuyển mã, lại chạy; rồi khi sửa, lại chuyển mã rồi mới chạy? Thằng TCVN3 thì không trở ngại gì.
2. Edit_box mà ghi nhiều dòng là sao nhỉ? List_box mới nhiều dòng chứ? Bác giải thích chỗ này giùm tôi chút xíu, vì cái của bác Ket là list_box mà. Nhưng bác ấy "*.exe" thì không thể tìm hiểu được.
3. Đúng là cái của bác Ket chỉ ghi có 1 dòng (bác phát hiện nên tôi vừa kiểm tra).
4. Tôi vừa viết xong cái LSP để chuyển từ TCVN3 sang Unicode (cái này ghi từng dòng chứ không phải 1 dòng), nhưng làm chiều ngược lại (Unicode sang TCVN3) thì hiện thời chưa được. Nếu các bác giúp được phần này thì tôi nghĩ mọi vấn đề đã được giải quyết. Lúc đó ta cứ viết LSP tiếng Việt bằng TCVN3 vô tư, muốn hiển thị trên dialog thì ta chuyển từ TCVN3 sang Unicode, còn muốn sửa file thì chuyển Unicode sang TCVN3, sửa xong thì chuyển qua Unicode.
Quả là một ngày chủ nhật mệt mõi vì tiếng Việt! Gởi các bác để xem cho vui.
http://www.cadviet.c...iles/3/test.zip
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#15 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 17 April 2011 - 10:50 PM

1.Về việc bổ sung TCVN3, ket đã làm và update cuối bài, giờ các bác tích viết bằng mã gì trong 2 loại trên thì viết ^^
Lý do thì vì nếu coding TCVN, save file theo ANSI thoải mái :) ^^ Unicode thì lại ra Unicode ^^ -> update là cần thiết ^^

2.Việc convert là việc cuối cùng, và ket vẫn nghĩ nên tạo file mới thì hay hơn.Đây chỉ là file kết quả gửi đi.1 file lisp thì lượng tiếng việt cũng k lớn so với code ^^
1 file LISP viết unicode, khi save dạng text thì nó ra là file dạng Unicode rồi ^^ Ket để file appen nên nếu ghi tên file cũ thì.. cứ thế nhận format Unicode thôi :).Nếu ghi ra file khác, nó lại là Ansi vô tư.Để kiểm tra trùng tên, xóa, tạo file mới thì cũng được nhưng vì lý do vừa nêu, e nghĩ chưa cần thiết.
Việc chuyển ngược lại, cũng vì lý do trên,sẽ chưa cần thiết :) Hẹn bác DVH khi nào có dịp ^^. Với lại, bác cứ sửa, xóa trên file kết quả, rồi lại convert tiếp cũng chẳng sao ^^


3. Tiếc là thời gian có hạn, cái này e viết trên VB.Net, chưa kịp ngâm cứu xem trên Lisp thì cụ thể hóa như thế nào.Cám ơn bác DVH vì các hàm lsp nhưng chắc khó cho vào Net của e ^^.
2 cái của e là 2 richtext_box, hỗ trợ đọc nhiều dòng + scroll bar, hơn nữa, chế độ đọc - ghi từng dòng,các bác xem lại hộ e đúng hok, vì ở máy e phình phường^^

Updated :
TV Lisp V2
P/s : có kèm 2 file để test
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#16 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 18 April 2011 - 02:26 AM

4. Tôi vừa viết xong cái LSP để chuyển từ TCVN3 sang Unicode (cái này ghi từng dòng chứ không phải 1 dòng), nhưng làm chiều ngược lại (Unicode sang TCVN3) thì hiện thời chưa được.

Chuyển từ Unicode sang TCVN3 vẫn áp dụng cách tuơng tự như cách chuyển từ TCVN3 sang Unicode nhưng theo chiều ngược lại và không áp dụng cho 18 ký tự sau:
á à ã â é è ê í ì ó ò õ ô ú ù Â Ê và Ô.
Gợi ý: với 18 ký tự đặc biệt trên, hãy kiểm tra mã của nó.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 18 April 2011 - 06:25 AM

1. Tôi đang thắc mắc: tại sao phải viết LSP bằng Unicode mà không phải viết bằng TCVN3? Vì viết bằng Unicode, nếu chưa chuyển qua ANSI, thì khi chạy LSP sẽ báo lỗi ngay. Vì LSP chỉ chơi với ANSI, không chơi với Unicode. Không lẽ cứ viết xong, lại chuyển mã, lại chạy; rồi khi sửa, lại chuyển mã rồi mới chạy? Thằng TCVN3 thì không trở ngại gì.

2. Edit_box mà ghi nhiều dòng là sao nhỉ? List_box mới nhiều dòng chứ? Bác giải thích chỗ này giùm tôi chút xíu, vì cái của bác Ket là list_box mà. Nhưng bác ấy "*.exe" thì không thể tìm hiểu được.

3. Đúng là cái của bác Ket chỉ ghi có 1 dòng (bác phát hiện nên tôi vừa kiểm tra).
....

1. Trong Lisp, bình thường là mình thường viết Tiếng Việt không dấu trên Vlide. Cũng chẳng sao cả. Vì convert sang Tiếng Việt là việc cuối cùng mà. Sau 1 quá trình "vò đầu bứt tai" xong rồi mới viết Tiếng Việt :rolleyes: . Hoặc là ngay khi viết Tiếng Việt, mình dùng Tool Convert cũng không sao? Có lẽ là mình không thích việc đổi Font của Window sang TCVN.
Còn với DCL thì khác, mình convert để ghi vào Label ngay khi viết luôn. Rất nhanh.

2. Cái này mình chưa biết mới đi hỏi mà? Làm sao có thể viết được Tiếng Việt nhiều dòng trong 1 Box? List_box làm sao có thể pick chuột mà viết Tiếng Việt vô trong đó được bạn? Và còn việc ghi Text trong Box vào Clipboard thì code như thế nào? Mình loay hoay mãi mà chưa xử lý được cái này?. Mong nhận được sự giúp đỡ.

3. @Ketxu: Việc chuyển ngược lại từ chữ loằng ngoằng là việc làm khá quan trọng đấy. Hơn nữa, việc ghi lại file Lisp của bạn là không triệt để, cứ viết chữ nọ nối tiếp chữ kia đi theo 1 băng luôn làm mất "tính nguyên bản" của Lisp nguồn. Nếu bạn có ý chuyển chữ Tiếng Việt thì làm cho chữ Tiếng Việt thôi, mở file Lisp, chuyển và save lại làm chi?
Việc ghi Text trong Box vào Clipboard thì codeLisp thật sự khó? Mong được sự giúp đỡ của bạn.
Xin cảm ơn
  • 0

#18 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 18 April 2011 - 06:37 AM

1. Trong Lisp, bình thường là mình thường viết Tiếng Việt không dấu trên Vlide. Cũng chẳng sao cả. Vì convert sang Tiếng Việt là việc cuối cùng mà. Hoặc là ngay khi viết Tiếng Việt, mình dùng Tool Convert cũng không sao? Có lẽ là mình không thích việc đổi Font của Window sang TCVN.
Còn với DCL thì khác, mình convert để ghi vào Label ngay khi viết luôn. Rất nhanh.

3. @Ketxu: Việc chuyển ngược lại từ chữ loằng ngoằng là việc làm khá quan trọng đấy. Hơn nữa, việc ghi lại file Lisp của bạn là không triệt để, cứ viết chữ nọ nối tiếp chữ kia đi theo 1 băng luôn làm mất "tính nguyên bản" của Lisp nguồn. Nếu bạn có ý chuyển chữ Tiếng Việt thì làm cho chữ Tiếng Việt thôi, mở file Lisp, chuyển và save lại làm chi? Việc ghi Text trong Box vào Clipboard thì codeLisp thật sự khó? Mong được sự giúp đỡ của bạn.
Xin cảm ơn

1.Bác cứ viết như bình thường, đâu có cần chuyển font chữ của win ^^ Chỉ tội nhìn nó hơi lằng ngoằng.Tất nhiên là cái e viết hỗ trợ cả việc convert ngay trong lúc viết cũng như sau khi đã hoàn thành lisp
3.Xanh : E vẫn giữ quan điểm là dù convert thế nào vẫn nên giữ lại file gốc :) Viết ngược lại cũng được, và từ 1 đoạn \U... sẽ có 2 kết quả.Tuy nhiên,với e hơi khó, mí lị sẽ làm loãng chức năng của tool.Có bao giờ nên convert 1 file 2 lần ^^ Thôi đành hẹn các bác vài hôm nữa vậy ^^
Việc convert toàn bộ file e đã test trên máy em, button Save Lisp, format vẫn giữ nguyên, không hề chạy về 1 dòng như các bác test.Trường hợp liền tù tì có lẽ do các bác dùng copy to clipboard, mà chức năng này ban đầu e chỉ dùng để convert 1 string ^^
Đoạn màu đỏ : :blush: Bác hỏi em tại sao phải làm hàng loạt mà không làm từng cái 1, em cũng không biết trả lời sao ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#19 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 18 April 2011 - 07:23 AM

....
3.Xanh : E vẫn giữ quan điểm là dù convert thế nào vẫn nên giữ lại file gốc :) Viết ngược lại cũng được, và từ 1 đoạn \U... sẽ có 2 kết quả.Tuy nhiên,với e hơi khó, mí lị sẽ làm loãng chức năng của tool.Có bao giờ nên convert 1 file 2 lần ^^ Thôi đành hẹn các bác vài hôm nữa vậy ^^
Việc convert toàn bộ file e đã test trên máy em, button Save Lisp, format vẫn giữ nguyên, không hề chạy về 1 dòng như các bác test.Trường hợp liền tù tì có lẽ do các bác dùng copy to clipboard, mà chức năng này ban đầu e chỉ dùng để convert 1 string ^^
Đoạn màu đỏ : :blush: Bác hỏi em tại sao phải làm hàng loạt mà không làm từng cái 1, em cũng không biết trả lời sao ^^

Mình đã thử convert 1 file Lisp. Sau khi nhấn button Save Lisp thì nó "tán loạn" cả lên, không còn như Format của Lisp gốc nữa
Đây là file test :
http://www.cadviet.c...es/3/test_1.rar

Ý của Tue_NV là Tiếng Việt thường chỉ có ở mấy chổ thôi. Chỉ cần Convert vô mấy chổ đó là được. Còn nếu như bạn Convert luôn toàn bộ thì tuyệt quá. Có điều, mình gặp phải lỗi Format trên nên không sử dụng được. Chỉ ngồi Convert từng chú vào mà thôi. Có mấy cái à? Đâu có nhiều lắm. Mình viết có gì sai xin các bạn bỏ quá cho, hỉ xả dùm. hề hề
:rolleyes:

Chúc các bạn một buổi sáng tốt lành
  • 0

#20 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 18 April 2011 - 07:56 AM

Tks các bác đã kiểm tra.E vừa lên cơ quan, mở file lisp kết quả Save bằng Notepad của WinXP thì đúng là bị liền dòng.Nhưng e thấy notepad đã hiển thị ký tự xuống dòng.Ở máy nhà e dùng Vista thì không có hiện tượng này, dòng nào ra dòng đấy. Tuy nhiên, load lisp bình thường ==> Đây là lỗi hiển thị của notepad của win XP. Nếu bác dùng N++ hoặc editor khác mở file lisp thì sẽ thấy nó hoàn toàn bình thường :)
Vậy có lẽ là dùng bình thường, chúc các bác ngon miệng ^^

P/S :
Nhân tiện nói về con số 18 bác Thái Bụi đề cập, e nhận thấy CAD cũng có vấn đề nếu hiển thị liên tiếp 18 mã Unicode ^^.Trong file test e gửi kèm có mục ;, các bác bỏ đi và test sẽ thấy ^^ Vì vậy , cũng k nên lạm dụng TV quá ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC