设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1488|回复: 5
打印 上一主题 下一主题

[已经解决] [内部函数问题]关于open

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
跳转到指定楼层
1
发表于 2013-8-22 22:26:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 九靈 于 2013-8-22 22:32 编辑

RM自带帮助:
open(file[, mode])
open(file[, mode]) {|io| ... }
打开 file 并返回 File 对象。mode 可以是下列字符串。省略时默认为 "r"。
"r": 以读取模式打开文件。
"w": 以写入模式打开文件。打开文件时,若文件已存在就清空文件内容。
"a": 以写入模式打开文件。通常把写入内容添加到文件结尾。
若有“+”的话,就以读写两用模式(RDWR)打开文件。
"r+": 将文件的读写位置设在开头。
"w+": 与 "r+" 一样,打开文件时,若文件已存在就清空其内容。
"a+": 与 "r+" 一样,打开文件时,若文件已存在,就把读写位置设在文件结尾。
可在上述任意一项后面添加“b”(如 "r+b")标志。此时,将以二进制方式打开文件。


问题就是红字!
1. 读写两用 : 有 "+" 号的区别
2. 二进制方式 : 一定要用二进制吗? 有没有加 "b"对存取有什么影响?
因为RGSS内部函数中 :
load_data(filename)
RUBY 代码复制
  1. File.open(filename, "rb") { |f|
  2.   obj = Marshal.load(f)
  3. }

以及
save_data(obj, filename)
RUBY 代码复制
  1. File.open(filename, "wb") { |f|
  2.   Marshal.dump(obj, f)
  3. }

都有加 "b"
还有
可以说下 r, r+, rb, r+b 的区别吗?

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2013-8-22 22:47:45 | 只看该作者
这里的“+”其实是传说中的“一元加”,不是正常的计算符号,详细使用方法可以去参考一下C语言的说明。
“r+b”和“rb”是一样的方法,但是前者由于一元加符号自动变成2进制代码于是使用了2进制打开文件。
但是在脚本中可以把"rb"换成"r"+"b"这就是正常加号了(引号正常)。

评分

参与人数 1星屑 +90 收起 理由
︶ㄣ牛排ぶ + 90 认可答案

查看全部评分


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
3
 楼主| 发表于 2013-8-22 23:18:04 | 只看该作者
kuerlulu 发表于 2013-8-22 22:47
这里的“+”其实是传说中的“一元加”,不是正常的计算符号,详细使用方法可以去参考一下C语言的说明。
“r ...

那如果我要存个开关 switch[1] = true 是要用
file = File.open("switch.rxdata", "w") 还是
file = File.open("switch.rxdata", "wb")
Marshal.dump(switch[1], file)
file.close
另外读的时候
file = File.open("switch.rxdata", "r") 还是
file = File.open("switch.rxdata", "rb")  <== "wb" 是否要对应 "rb"
switch[1] = file
file.close

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2013-8-22 23:25:34 | 只看该作者
其实大可不必写成这样,还多占一行
save_data(变量名, "路径和文件名")
变量名 = load_data("路径和文件名")


  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
5
 楼主| 发表于 2013-8-22 23:29:02 | 只看该作者
kuerlulu 发表于 2013-8-22 23:25
其实大可不必写成这样,还多占一行
save_data(变量名, "路径和文件名")
变量名 = load_data("路径和文件名" ...

也是...
那如果硬要写成那样的话
w 和 wb
哪个好?
还是没差...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
6
发表于 2013-8-23 08:16:45 | 只看该作者
建议使用save_data和load_data 不过在下试过r和w的 能够正常的读取和写入 至于什么二进制在下就不知道了= =

点评

好吧...其实也不是什么大问题= =只是好奇罢了! 感谢回帖!  发表于 2013-8-23 13:13
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-29 19:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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