找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: sonic1997

好久没来了...(已经演变成连贴专用贴了-_-b)

[复制链接]
 楼主| 发表于 2013-1-13 07:11:20 | 显示全部楼层

回 486楼(secondsen) 的帖子

明明不远=-=都一半了...
 楼主| 发表于 2013-1-13 07:12:32 | 显示全部楼层

回 489楼(secondsen) 的帖子

那么求教怎么读取在网络上的一个文本的内容0w0(我是脚本白...目前只会读取本地的...
(虽然我也不知道为啥要做这无聊的东西= =

于是去弄了个HTTP获取就好了...
发表于 2013-1-13 12:03:39 | 显示全部楼层
需要外部的库。。。好像RGSS没有uri库吧。。

你看看有没有HTTP::NET之类的吧。我给你上代码吧。。有没有库不知道。。。找找代码去
发表于 2013-1-13 12:09:41 | 显示全部楼层
  1. require 'net/http'
  2. Net::HTTP.start("www.google.com.hk") { |http|
  3.   resp = http.get("/images/srpr/nav_logo27.png")
  4.   open("D:/test.png", "wb") { |file|
  5.     file.write(resp.body)
  6.    }
  7. }
  8. puts "OK"
复制代码

这个是没有对连接是否有效做检测的。。。好像链接是无效的就会报错。。终止运行。。。

这个是吧网络资源保存到本地。。当然你也可以不存到本地,直接用字符串之类的记录,并进行操作
发表于 2013-1-13 12:15:06 | 显示全部楼层
另外,ruby做下载工具的代码,看链接

http://www.verydemo.com/demo_c119_i214.html
发表于 2013-1-13 12:16:57 | 显示全部楼层
发表于 2013-1-13 12:37:35 | 显示全部楼层
496楼
发表于 2013-1-13 13:16:04 | 显示全部楼层
这个楼可以建成HS第一高楼。。我这么觉得的
 楼主| 发表于 2013-1-14 04:23:54 | 显示全部楼层

回 497楼(secondsen) 的帖子

完全没问题=-=
 楼主| 发表于 2013-1-14 04:26:43 | 显示全部楼层

回 493楼(secondsen) 的帖子

我记得RGSS不能这样的=-=

测试后也证实不可以了...


我是加上了这货就好了...
  1. # 此脚本来源于日本,作者てつ
  2. class Get_Version_Info
  3.   AGENT = "RGSS PLAYER"
  4.   INTERNET_OPEN_TYPE_PRECONFIG = 0
  5.   INTERNET_OPEN_TYPE_DIRECT    = 1
  6.   def Get_Version_Info.InternetOpen()
  7.     io = Win32API.new('wininet', 'InternetOpen', %(p, l, p, p, l), 'l')
  8.     hInternet = io.call(AGENT, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0)
  9.     return hInternet
  10.   end
  11.   def Get_Version_Info.InternetOpenUrl(hSession, url)
  12.     iou = Win32API.new('wininet', 'InternetOpenUrl', %(l, p, p, l, l, l), 'l')
  13.     hService = iou.call(hSession, url, nil, 0, 0, 0)
  14.     return hService
  15.   end
  16.   def Get_Version_Info.InternetReadFile(hService)
  17.     content = ""
  18.     read_size = 1024
  19.     irf = Win32API.new('wininet', 'InternetReadFile', %(l, p, i, p), 'i')
  20.     while(true)
  21.       buf = "\\0" * read_size
  22.       red = [0].pack('L')
  23.       irf.call( hService, buf, read_size, red )
  24.       if(red.unpack('L') == [0])
  25.         break
  26.       end
  27.       buf.delete!("\\0")
  28.       content += buf
  29.     end
  30.     return content
  31.   end
  32.   HTTP_QUERY_STATUS_CODE = 19
  33.   def Get_Version_Info.HttpQueryInfo(hService)
  34.     read_size = 1024
  35.     buf = "\\0" * read_size
  36.     red = [read_size-1].pack('L')
  37.     hqi = Win32API.new('wininet', 'HttpQueryInfo', %(l, l, p, p, p), 'i')
  38.     isOk = hqi.call( hService, HTTP_QUERY_STATUS_CODE, buf, red, nil)
  39.     buf.delete!("\\0")
  40.     return buf
  41.   end
  42.   def Get_Version_Info.InternetCloseHandle(hInternet)
  43.     ich = Win32API.new('winInet', 'InternetCloseHandle', %(l), 'i')
  44.     isOk = ich.call(hInternet)
  45.     return isOk
  46.   end
  47.   HTTP_CODE_OK = "200"
  48.    
  49.   def Get_Version_Info.get_version(url)
  50.     version = nil
  51.     begin
  52.       hInternet = InternetOpen()
  53.       if(hInternet != 0)
  54.         hService = InternetOpenUrl(hInternet, url)
  55.         if(hService != 0)
  56.           status_code = HttpQueryInfo(hService)
  57.           if(status_code == HTTP_CODE_OK)
  58.             version = InternetReadFile(hService)
  59.           end
  60.           InternetCloseHandle(hService)
  61.         end
  62.         InternetCloseHandle(hInternet)
  63.       end
  64.     rescue
  65.       return nil
  66.     end
  67.     return version
  68.   end
  69. end
复制代码

不过折腾着发现文件不知道跑哪去了...
重写一次...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|幻想森林

GMT+8, 2026-11-16 06:26 , Processed in 0.011129 second(s), 13 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表