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

[Hỏi]Lisp Lấy Thời Gian Qua Mạng Internet!

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

Mọi người cho em hỏi autolisp có cách nào lấy thời gian hiện tại (ngày/tháng/năm-giờ/phút/giây) một cách chính xác qua mạng internet được không vậy! Em tìm hiểu trên các diễn đàn nhưng không thấy nói về vấn đề này! Mong mọi người chỉ giúp!

Thanks!!!

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 bạn ạ, thậm chí cả thời tiết, tin tức... vì qua lisp có thể đọc được thông tin từ WEB mà ^^ Vấn đề còn phụ thuộc lấy thông tin từ nguồn nào nữa :)

  • 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

Chào bác ketxu! Cảm ơn bác đã quan tâm đến vấn đề của mình!

Bác nói là lấy thông tin từ nguồn nào mình chưa hiểu! Chủ ý của mình là lấy ngày/tháng/năm – giờ/phút/giây hiện tại! Miễn sao từ file lisp này mình có thể lấy được thông tin về thời gian lúc đang sử dụng file lisp qua mạng internet là được rồi! Mong bác chỉ giúp!!!

Thanks!!!

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 bạn ạ, thậm chí cả thời tiết, tin tức... vì qua lisp có thể đọc được thông tin từ WEB mà ^^ Vấn đề còn phụ thuộc lấy thông tin từ nguồn nào nữa :)

Chào bác ketxu! Cảm ơn bác đã quan tâm đến vấn đề của mình!

Bác nói là lấy thông tin từ nguồn nào mình chưa hiểu! Chủ ý của mình là lấy ngày/tháng/năm – giờ/phút/giây hiện tại! Miễn sao từ file lisp này mình có thể lấy được thông tin về thời gian lúc đang sử dụng file lisp qua mạng internet là được rồi! Mong bác chỉ giúp!!!

Thanks!!!

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

Mình nói nguồn nào tức là Sever time nào :) Bạn bảo miễn sao, nhưng mỗi sever có 1 cấu trúc dữ liệu cụ thể, bạn có chỉ định Sever nào không ???

  • 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

Mình nói nguồn nào tức là Sever time nào :) Bạn bảo miễn sao, nhưng mỗi sever có 1 cấu trúc dữ liệu cụ thể, bạn có chỉ định Sever nào không ???

Chào bác ketxu! Mình không biết có những Sever time nào để lấy được thời gian bác à! Mình không biết gì về vấn đề này! Bác chỉ giúp cách lấy thời gian trên một server nào bác thấy là đơn giản, lấy được thời gian nước Việt Nam tại thời điểm sử dụng file lisp! Mình chỉ cần như vậy thôi!

Mong bác chỉ giúp! Thanks! :mellow:

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 tham khảo hàm này của LM :

(defun LM:InternetTime ( format / result rgx server xml )
(setq server "http://time.nist.gov:13")
(setq result
   	(vl-catch-all-apply
       	(function
           	(lambda ( / str )
               	(setq xml (vlax-create-object "MSXML2.XMLHTTP.3.0"))
               	(setq rgx (vlax-create-object "VBScript.RegExp"))
               	(vlax-invoke-method xml 'open "POST" server :vlax-false)
               	(vlax-invoke-method xml 'send)
               	(if (setq str (vlax-get-property xml 'responsetext))
                   	(progn
                       	(vlax-put-property rgx 'global 	actrue)
                       	(vlax-put-property rgx 'ignorecase actrue)
                       	(vlax-put-property rgx 'multiline  actrue)
                       	(mapcar
                           	(function
                               	(lambda ( a b )
                                   	(vlax-put-property rgx 'pattern a)
                                   	(setq format (vlax-invoke rgx 'replace format B))
                               	)
                           	)
                      		'("YY" "MO" "DD" "HH" "MM" "SS")
                      		'("$1" "$2" "$3" "$4" "$5" "$6")
                       	)
                       	(vlax-put-property rgx 'pattern
                           	(strcat
                               	"(?:[^\\d]+[\\d]+[^\\d]+)"
                               	"([\\d]+)(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)(?:[^\\d]+)"
                               	"([\\d]+)(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)(?:.+)\\n"
                           	)
                       	)
                       	(vlax-invoke-method rgx 'replace str format)
                   	)
               	)
           	)
       	)
   	)
)
(if xml  (vlax-release-object xml))
(if rgx  (vlax-release-object rgx))
(if (not (vl-catch-all-error-p result))
   	result
)
)

Sử dụng :

- Đối số format :

YY = Year

MO = Month

DD = Day

HH = Hours

MM = Minutes

SS = Seconds

 

Ví dụ :

(LM:InternetTime "DD/MO/YY, HH:MM:SS")

"17/09/11, 19:37:07"

(LM:InternetTime "MO.DD.YY")

"09.17.11"

(LM:InternetTime "HH:MM")"19:37"

  • 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

Bạn tham khảo hàm này của LM :

(defun LM:InternetTime ( format / result rgx server xml )
(setq server "http://time.nist.gov:13")
(setq result
   	(vl-catch-all-apply
       	(function
           	(lambda ( / str )
               	(setq xml (vlax-create-object "MSXML2.XMLHTTP.3.0"))
               	(setq rgx (vlax-create-object "VBScript.RegExp"))
               	(vlax-invoke-method xml 'open "POST" server :vlax-false)
               	(vlax-invoke-method xml 'send)
               	(if (setq str (vlax-get-property xml 'responsetext))
                   	(progn
                       	(vlax-put-property rgx 'global 	actrue)
                       	(vlax-put-property rgx 'ignorecase actrue)
                       	(vlax-put-property rgx 'multiline  actrue)
                       	(mapcar
                           	(function
                               	(lambda ( a b )
                                   	(vlax-put-property rgx 'pattern a)
                                   	(setq format (vlax-invoke rgx 'replace format B))
                               	)
                           	)
                  			'("YY" "MO" "DD" "HH" "MM" "SS")
                  			'("$1" "$2" "$3" "$4" "$5" "$6")
                       	)
                       	(vlax-put-property rgx 'pattern
                           	(strcat
                               	"(?:[^\\d]+[\\d]+[^\\d]+)"
                               	"([\\d]+)(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)(?:[^\\d]+)"
                               	"([\\d]+)(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)(?:.+)\\n"
                           	)
                       	)
                       	(vlax-invoke-method rgx 'replace str format)
                   	)
               	)
           	)
       	)
   	)
)
(if xml  (vlax-release-object xml))
(if rgx  (vlax-release-object rgx))
(if (not (vl-catch-all-error-p result))
   	result
)
)

Sử dụng :

- Đối số format :

 

 

Ví dụ :

Thanks bác Ketxu nhé! Nhưng mình load file lisp lên sau đó LM:InternetTime "DD/MO/YY, HH:MM:SS")

chạy nó báo "nil"! Mình đoán hình như là trang web "http://time.nist.gov:13" không vào được! Bác kiểm tra lại lỗi giúp mình nhé!

Thanks you!

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

Rất tiếc là đến giờ mình cũng k còn lấy được time nữa ^^ K connect được với sever thì đành chịu thôi ^^

Việc lấy time chỉ thành công khi sofware của ta connect được với Sever time.

Đây là lưu ý của NIST :

 

 

All users should ensure that their software NEVER queries a server more frequently than once every 4 seconds. Systems that exceed this rate will be refused service.

Có thể 1 lúc nào đó bạn test lại lại được ^^

(Ngay cả việc sync time trong Windows cũng vậy ^^)

  • 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

Hôm nay test lại thấy hàm chạy ngon lành ^^ Đúng là cái gì xài chùa từ NET đều bị bi kịch này ^^

  • 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

Hôm nay test lại thấy hàm chạy ngon lành ^^ Đúng là cái gì xài chùa từ NET đều bị bi kịch này ^^

He!

Mình text cũng thấy nó chạy Ok! Không biết có phải do trang web lấy thời gian đó lúc trước bị trục trặc không nữa bác Ketxu! He! Thank you bác nhiều nhiều nhé!

Bác cho mình hỏi có trang web nào có thể lấy thời gian được nữa không vậy bá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

Có 1 số trang khác như time.windows.com, time.nist.gov, time-a.nist.gov, time-b.nist.gov ... tuy nhiên, thú thực với bạn mình ngoại đạo trong lĩnh vực này ^^

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  

×