{"id":987,"date":"2010-03-26T10:56:00","date_gmt":"2010-03-26T02:56:00","guid":{"rendered":""},"modified":"2013-11-17T12:08:03","modified_gmt":"2013-11-17T04:08:03","slug":"idl%e4%b8%89%e4%b8%aa%e4%bd%9c%e4%b8%9a%e7%a8%8b%e5%ba%8f","status":"publish","type":"post","link":"https:\/\/kyle.ai\/blog\/987.html","title":{"rendered":"IDL\u4e09\u4e2a\u4f5c\u4e1a\u7a0b\u5e8f"},"content":{"rendered":"<p>\u539f\u521b3\u4e2a\u7f16\u7a0b\u9898\uff1a\u5305\u62ec\u9898\u610f\u3001\u7a0b\u5e8f<br \/>\n\u5c06\u666e\u901a\u65f6\u95f4\u8f6c\u6362\u6210GPS\u65f6\u95f4(getgpstime.pro)<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n;\u5c06\u666e\u901a\u65f6\u95f4\u8f6c\u6362\u4e3aGPS\u7cfb\u7edf\u65f6\u95f4\r\nfunction GetGPSTime,year,month,day,hour,minute,second\r\n  weekno=0\r\n  dayofy=day\r\n  dinmth=&#x5B;0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\r\n  ;\u68c0\u67e5\u65f6\u95f4\u662f\u5426\u8d85\u9650\r\n  if (year &lt; 1981 || month &lt; 1 || month &gt; 12 || day &lt; 1 || day &gt; 31) then weekno=0\r\n  ;\u8ba1\u7b97\u4e3a\u4eca\u5e74\u4e2d\u7684\u54ea\u4e00\u5929\r\n  if (month eq 1) then begin dayofy=day\r\n  endif else begin\r\n    dayofy = 0\r\n    for m=1,month-1 do begin\r\n      dayofy += dinmth(m)\r\n      if(m eq 2) then begin\r\n        if(year mod 4 eq 0 &amp;&amp; year mod 100 ne 0 || year mod 400 eq 0) then  dayofy += 1\r\n      endif     \r\n    endfor\r\n    dayofy += day\r\n  endelse\r\n  ;\u8ba1\u7b97GPS\u5468\u4e0eGPS\u79d2\r\n  ttday=360\r\n  for yr=1981,year-1 do begin\r\n    ttday += 365\r\n    if (yr mod 4 eq 0 &amp;&amp; yr mod 100 ne 0 || yr mod 400 eq 0) then  ttday += 1\r\n  endfor\r\n  ttday += dayofy\r\n  weekno = ttday \/ 7\r\n  dayofw = ttday - 7*weekno\r\n  gpstime = hour * 3600 + minute * 60 + second + dayofw * 86400\r\n  if(weekno gt 1024) then weekno -= 1024\r\n  gps = &#x5B;weekno,gpstime]\r\n  return,gps\r\nend\r\n\r\n;\u6d4b\u8bd5\u4e00\u4e0b\r\nyear=0 &amp; month=0 &amp; day=0 &amp; hour=0 &amp; minute=0 &amp; second=0\r\nread,year,month,day,hour,minute,second,prompt=&quot;\u8bf7\u8f93\u5165\u65f6\u95f4(\u5e74,\u6708,\u65e5,\u65f6,\u5206,\u79d2)\uff1a&quot;,Format='(4I,2I,2I,2I,2I,2I)'\r\ngpstime = GetGPSTime(year,month,day,hour,minute,second)\r\nprint,gpstime\r\nend\r\n<\/pre>\n<p>\u8bfb\u53d6YUMA\u661f\u5386\u6570\u636e(yuma.pro)<br \/>\nYUMA\u661f\u5386\u5730\u5740\uff1ahttp:\/\/www.navcen.uscg.gov\/gps\/current\/current.alm<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n;\u8bfb\u53d6YUMA\u661f\u5386\u6570\u636e\r\nYUMAData = {ID:0, Health:0, Eccentricity:0.0, TimeOfApplicability:0, OrbitalInclination:0.0, RateOfRightAscen:0.0, SQRTA:0.0, RightAscenAtWeek:0.0, ArgumentOfPerigee:0.0, MeanAnom:0.0, Af0:0.0, Af1:0.0, week:0 }\r\nyumas = make_array(32,value=YUMAData)\r\nfilters = &#x5B;'*.txt;*.txt']\r\nFile = Dialog_PickFile(\/Read,filter=filters)\r\nOpenR, YumaFile, File,\/Get_Lun\r\nid='' &amp; hea='' &amp; ecc='' &amp; tim='' &amp; orb='' &amp; rat='' &amp; sqr='' &amp; rig='' &amp; arg='' &amp; mea='' &amp; af0='' &amp; af1='' &amp; wee=''\r\nfor i=1,31 do begin\r\nReadF,YumaFile,id,id,hea,ecc,tim,orb,rat,sqr,rig,arg,mea,af0,af1,wee\r\ns = strtrim(id,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].ID = string(s_array&#x5B;28:29])\r\n\r\ns = strtrim(hea,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].Health = string(s_array&#x5B;28:30])\r\n\r\ns = strtrim(ecc,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].Eccentricity = string(s_array&#x5B;28:44])\r\n\r\ns = strtrim(tim,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].TimeOfApplicability = string(s_array&#x5B;27:37])\r\n\r\ns = strtrim(orb,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].OrbitalInclination = string(s_array&#x5B;28:39])\r\n\r\ns = strtrim(rat,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].RateOfRightAscen = string(s_array&#x5B;27:44])\r\n\r\ns = strtrim(sqr,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].SQRTA = string(s_array&#x5B;28:38])\r\n\r\ns = strtrim(rig,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].RightAscenAtWeek = string(s_array&#x5B;27:44])\r\n\r\ns = strtrim(arg,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].ArgumentOfPerigee = string(s_array&#x5B;28:38])\r\n\r\ns = strtrim(mea,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].MeanAnom = string(s_array&#x5B;27:44])\r\n\r\ns = strtrim(af0,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].Af0 = string(s_array&#x5B;27:44])\r\n\r\ns = strtrim(af1,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].Af1 = string(s_array&#x5B;27:44])\r\n\r\ns = strtrim(wee,2)\r\ns_array = byte(s)\r\nyumas&#x5B;i].Week = string(s_array&#x5B;29:31])\r\n\r\nif(i ne 31) then ReadF,YumaFile,id\r\n\r\nprint,yumas&#x5B;i]\r\nendfor\r\n\r\nFree_Lun,YumaFile\r\nend\r\n<\/pre>\n<p>\u89e3\u7b97\u4e5d\u5bab\u683c(shudu.pro)<br \/>\n\u8fd9\u4e2a\u7a0b\u5e8f\u6211\u5199\u8fc7\u975e\u5e38\u591a\u4e2a\u7248\u672c\u4e86\uff0c\u7528C\u3001.NET\u3001Delphi\u3001WEB\u5747\u5b9e\u73b0\u8fc7\uff0c\u73b0\u5728\u6b63\u5b66\u4e60IDL\uff0c\u4e8e\u662f\u53c8\u5199\u4e86\u4e00\u4e2aIDL\u7248\u672c\u3002<br \/>\n\u9996\u5148\u8bf4\u660e\u4e00\u4e0b\u4e5d\u5bab\u683c\u6570\u72ec\uff0c\u5c31\u662f\u57289*9\u4e2a\u5bab\u683c\u4e2d\u586b\u4e0a1-9\u8fd9\u4e5d\u4e2a\u6570\uff0c\u4f7f1-9\u6bcf\u4e2a\u6570\u5b57\u5728\u6bcf\u4e00\u884c\u3001\u6bcf\u4e00\u5217\u548c\u6bcf\u4e00\u5bab\u4e2d\u90fd\u53ea\u51fa\u73b0\u4e00\u6b21\u3002<\/p>\n<pre class=\"brush: delphi; title: ; notranslate\" title=\"\">\r\n;\u89e3\u7b97\u4e5d\u5bab\u683c\u6570\u72ec\r\n;\u5224\u65ad\u4e5d\u5bab\u683c\u662f\u5426\u5408\u683c\r\nfunction isvalid,i,j,pu,query\r\n  n = pu&#x5B;i,j]\r\n  for t=0,8 do begin\r\n    if((t ne i &amp;&amp; pu&#x5B;t,j] eq n) || (t ne j &amp;&amp; pu&#x5B;i,t] eq n)) then return,0 ;0-9\u7684\u6570\u5b57\uff0c\u6bcf\u884c\u6bcf\u5217\u90fd\u4e0d\u80fd\u91cd\u590d\r\n  endfor\r\n  for t=query&#x5B;i],query&#x5B;i]+2 do begin  ;9\u4e2a\u5bab\u76843\u00a1\u00c13\u91cc\u4e5f\u4e0d\u80fd\u91cd\u590d\r\n    for u=query&#x5B;j],query&#x5B;j]+2 do begin\r\n      if ((t ne i || u ne j) &amp;&amp; (pu&#x5B;t,u] eq n)) then return,0\r\n    endfor\r\n  endfor\r\n  return,1\r\nend\r\n;\u89e3\u7b97\u4e5d\u5bab\u683c\r\npro try,n,pu,query\r\n  if(n eq 81) then begin \r\n    out,pu\r\n    return\r\n  endif\r\n  i = n \/ 9 \r\n  j = n mod 9\r\n  if(pu&#x5B;i,j] ne 0) then begin\r\n    try,n+1,pu,query\r\n    return\r\n  endif\r\n  for k=0,8 do begin\r\n    pu&#x5B;i,j]++\r\n    if(isvalid(i,j,pu,query)) then try,n+1,pu,query\r\n  endfor\r\n  pu&#x5B;i,j] = 0\r\nend\r\n\r\npro out,pu\r\n  print,pu\r\nend\r\n;\u8981\u89e3\u7684\u4e5d\u5bab\u683c\u6570\u636e\uff0c0\u8868\u793a\u5f85\u6c42\u7684\u6570\r\npu0 = &#x5B;&#x5B;0,8,0,0,0,3,0,9,0],&#x5B;0,0,7,6,4,0,0,5,0],&#x5B;3,2,0,0,0,7,4,6,0],&#x5B;0,4,0,0,0,1,0,3,0],&#x5B;2,0,3,0,0,6,8,0,1],&#x5B;0,5,0,7,0,9,0,4,0],&#x5B;0,7,1,3,0,0,0,8,9],&#x5B;0,3,0,0,1,4,7,0,0],&#x5B;0,6,0,9,0,0,0,1,0]]\r\nquery0 = &#x5B;0, 0, 0, 3, 3, 3, 6, 6, 6]\r\ntry,0,pu0,query0\r\nend\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u521b3\u4e2a\u7f16\u7a0b\u9898\uff1a\u5305\u62ec\u9898\u610f\u3001\u7a0b\u5e8f \u5c06\u666e\u901a\u65f6\u95f4\u8f6c\u6362\u6210GPS\u65f6\u95f4(getgpstime.pro) ;\u5c06\u666e\u901a\u65f6\u95f4\u8f6c\u6362\u4e3a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-987","post","type-post","status-publish","format-standard","hentry","category-diary"],"_links":{"self":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/comments?post=987"}],"version-history":[{"count":5,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/987\/revisions"}],"predecessor-version":[{"id":4577,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/posts\/987\/revisions\/4577"}],"wp:attachment":[{"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/media?parent=987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/categories?post=987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kyle.ai\/blog\/wp-json\/wp\/v2\/tags?post=987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}