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

Project1

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

[已经解决] [Main组的问题]关于 $! messgae sub filename 的问题

[复制链接]

Lv1.梦旅人

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

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

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

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

在Main组里

我知道 Errno::ENOENT 是用来捕捉找不到文件时的异常的

然后系统在找不到文件时会捕捉到Errno::ENOENT异常并执行

           filename = $!.message.sub("No such file or dirctory - ","")
           print("找不到文件 #{filename}。")

这段代码

---------------------------------------------------

接着有几个问题

(允许我一题多问吧)

(话说这能拆开来问吗...)

1.  为什么  知道所缺的文件的名字?

2. 为什么 filename  的值不是  "No such file or dirctory -  "

3.  RMXP 附带帮助里说的  "$!  最近发生的异常的信息。由 raise 设定。"  在这里是指  Errno::ENOENT  吗?  又  $! == Errno::ENOENT  ?

4.  RMXP 附带帮助里说  "message  返回描述错误信息的字符串。"  那在这里  "错误信息的字符串"  是指什么?

5.  话说RMXP 附带帮助里

          "sub(pattern) {|matched| ... }
          sub!(pattern) {|matched| ... }
          用 pattern 来替换首次匹配 pattern 的部分。
          sub 生成并返回替换后的字符串。而 sub! 会修改 self 本身并返回结果。若没有进行替换时返回 nil。
          除去只进行一次匹配这个特点以外,它与 gsub 是相同的。"

    有看没懂= ='

     估计  pattern  是指  "No such file or dirctory - ",""

    这样的话  "sub 生成并返回替换后的字符串。"

    filename  的值就会是  "No such file or dirctory - ",""  了?

    不过事实似乎是会  print  出  "找不到文件 + 缺失的文件名"



6.   "No such file or dirctory - ",""  的  最后  ""  有什么深层的意思?

--------------------------------------------




















Lv1.梦旅人

梦石
0
星屑
50
在线时间
141 小时
注册时间
2013-8-6
帖子
114
2
发表于 2013-8-22 09:51:04 | 只看该作者
sub把message中的"No such file or dirctory - " 替换成 "", 其实就是把这句英文去掉了而已,主要是为了汉化,改成了中文 "找不到文件 " 了。 错误信息和缺失文件名在Errno模组的ENOENT 类中(这是一个Singleton类),赋值给全局变量$!, message方法输出错误语句"No such file or dirctory - Graphics/Titles/001-Title01"。 这里先将输出的语句赋值给变量filename, 然后由于是双引号的string,可以用#{filename}获取该变量。

点评

谢谢了! 我还在想怎么都没人提...  发表于 2013-8-22 11:58

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
157 小时
注册时间
2013-8-14
帖子
203
3
 楼主| 发表于 2013-8-22 12:14:20 | 只看该作者
本帖最后由 九靈 于 2013-8-22 12:50 编辑

如果只是为了汉化的话
为什么不改成

          filename = $!.message.sub("No such file or dirctory - ", "找不到文件 ")
          print("#{filename}。")

这样是不是也行?

点评

嗯......但是不管怎样显示的不都是 "找不到文件 + 缺的文件地址" 吗? 不管是不是普通用户,显示的不都一样= =  发表于 2013-8-22 12:54
这样是可以的,但是这样出来的只有一个地址和文件名,普通用户并不知道具体什么问题  发表于 2013-8-22 12:19
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 13:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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