Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
12 replies to this topic

#1 hoclisp

hoclisp

    biết pan

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

Đã gửi 12 September 2011 - 11:13 PM

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!!!
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 12 September 2011 - 11:19 PM

Đượ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 :)
  • 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


#3 hoclisp

hoclisp

    biết pan

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

Đã gửi 15 September 2011 - 10:09 PM

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!!!


  • 0

#4 hoclisp

hoclisp

    biết pan

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

Đã gửi 15 September 2011 - 10:10 PM

Đượ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!!!
  • 0

#5 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 18 September 2011 - 05:14 PM

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 ???
  • 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


#6 hoclisp

hoclisp

    biết pan

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

Đã gửi 21 September 2011 - 11:29 AM

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:
  • 0

#7 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 21 September 2011 - 11:39 AM

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"


  • 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 hoclisp

hoclisp

    biết pan

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

Đã gửi 21 September 2011 - 02:50 PM

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!
  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 21 September 2011 - 09:05 PM

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 ^^)
  • 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


#10 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 September 2011 - 03:50 PM

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 ^^
  • 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 hoclisp

hoclisp

    biết pan

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

Đã gửi 27 September 2011 - 10:02 PM

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!
  • 0

#12 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 27 September 2011 - 10:21 PM

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 ^^
  • 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


#13 Gà mờ

Gà mờ

    biết zoom

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

Đã gửi 28 September 2011 - 09:12 AM

hay nhỉ, lấy thời gian thực, có lẽ bạn viết code giới hạn thời gian sử dụng cho LISP chăng, mà dùng thời gian trên máy dễ bị Fake
  • 0