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

Project1

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

[RMVA发布] CSV表格数据库v1.0【VA】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
跳转到指定楼层
1
发表于 2015-9-4 21:18:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Silentever 于 2015-9-5 13:10 编辑

为什么RGSS没有CSV!?
为什么ASCII-8BIT就是不能转UTF-8!?
为什么CSV不能直接UTF-8必须用记事本转码!?





以上纯属抱怨。

正文:说什么功能反正看标题就知道了吧?总之就是数据库↔CSV表格双向转换,可以转换道具、技能、武器跟防具数据。
支持汉字←请大神别吐槽,无知的小生跟csv编码大战了整整2天。
虽然表格输入说明文字不太美观,但重在方便(实用性至上主义)。

关键部分是抄……参考HimeWorks的脚本,感觉不说出来不太好。

以上完。然后是范例
CSV数据库v1.0.rar (1.43 MB, 下载次数: 323)




另外需要注意的:每次保存csv需要手动转码到utf-8(用记事本),否则汉字会变成乱码。

评分

参与人数 1星屑 +4 收起 理由
574656549 + 4 怎么不要xml 数据裱

查看全部评分

「私が来た!  私が見た!  ならば次わ買つだけのこと!」

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
2
发表于 2015-9-4 23:40:46 | 只看该作者
本帖最后由 墨凌羽 于 2015-9-4 18:11 编辑

然而我写过这种东西。。。ORZ
下下来看看


脚本有问题ORZ。。。。csv文件已损坏

点评

你光顾着装逼忘了关闭文件  发表于 2015-9-5 22:08
def read(p) return x=[],File.open(p,"r").readlines().each{|i|x.push(i.split(","))} end 不管转码的一行版CSV读取233 返回的是一个二维数组  发表于 2015-9-5 11:30
抱歉,是我太小看csv了,没想到每次保存都会变回ASCII。应该已经没问题了,大概(  发表于 2015-9-5 03:52
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

3
发表于 2015-9-5 08:35:53 | 只看该作者
本帖最后由 VIPArcher 于 2015-9-5 08:49 编辑
ASCII-8BIT就是不能转UTF-8
  1. ASCII_8BIT = '喵喵喵'.unpack('M*').first
  2. ASCII_8BIT.force_encoding __ENCODING__ #=> '喵喵喵'
  3. ASCII_8BIT.force_encoding 'UTF-8' #=> '喵喵喵'
  4. eval ASCII_8BIT.inspect #=> '喵喵喵'
复制代码

点评

另外 经测试 在VA里external_encoding和internal_encoding是无效的【该死又是被eb阉割掉的么ORZ  发表于 2015-9-5 15:19
force_encoding并不能真正意义上改变编码。。。只是修正字符串编码信息ORZ  发表于 2015-9-5 14:38

评分

参与人数 1星屑 +24 收起 理由
kuerlulu + 24

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
10
星屑
5768
在线时间
1851 小时
注册时间
2013-2-14
帖子
395

开拓者

4
发表于 2015-9-5 11:26:23 | 只看该作者
于是买了,看看有多方便
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
5
发表于 2015-9-5 15:27:21 | 只看该作者
本帖最后由 墨凌羽 于 2015-9-5 09:47 编辑

嗯 试了下新版 貌似除了转码问题没解决之外 还有“no table find...”什么的


嗯 我之前写的csv读取
实际上没必要和那个编码较劲 外部csv文件保持utf-8编码就好了 反正RM里折腾编码会很蛋疼

RUBY 代码复制
  1. module DataBase
  2.  
  3.   def self.init
  4.       @classlist = []
  5.   end
  6.   def self.classlist
  7.     return @classlist
  8.   end
  9.   def self.classlist= obj
  10.     @classlist = obj
  11.   end
  12.  
  13.   module DataBase::CSV
  14.  
  15.     attr_reader :data_table
  16.  
  17.     def self.load_data(filename)
  18.       data = readtable(filename)
  19.       class_name = make_data_class(data, filename)
  20.       @data_table = fill_datas(data, class_name)
  21.     end
  22.  
  23.     #生成数据文件对应的类
  24.     def self.make_data_class(data, filename)
  25.       names = data[0]   
  26.       data_class = DataBase.const_set(filename.capitalize, Class.new)
  27.       data_class.class_eval do
  28.         names.each{|i| attr_accessor i}
  29.         define_method(:initialize) do |val|
  30.           names.each_with_index do |name, i|
  31.             instance_variable_set("@"+name, eval(val[i]))
  32.           end
  33.         end
  34.       end
  35.       DataBase.classlist.push(filename)
  36.  
  37.       return data_class
  38.     end
  39.  
  40.     #填充数据
  41.     def self.fill_datas(data, class_name)
  42.       table = []
  43.       table[0] = nil
  44.       #删除头数据
  45.       data.delete_at(0)
  46.       data.each_index{|i| table.push(class_name.new(data[i]))}
  47.       return table
  48.     end
  49.  
  50.     #读取
  51.     def self.readtable(filename)
  52.       data = File.open("#{$DATAPATH}/#{filename}.csv", "r") do |f|
  53.         f = f.readlines()
  54.         f = f.each_index do |i|
  55.           f[i] = f[i].split(",")
  56.           f[i][-1] = f[i][-1].chomp
  57.         end
  58.       end
  59.     end
  60.   end
  61. end
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
6
 楼主| 发表于 2015-9-5 20:02:38 | 只看该作者
本帖最后由 Silentever 于 2015-9-5 13:14 编辑
墨凌羽 发表于 2015-9-5 08:27
嗯 试了下新版 貌似除了转码问题没解决之外 还有“no table find...”什么的


嗯 我之前写的csv读取


其实修复的是写入csv的时候汉字变成乱码的问题。另外也忘了备注csv必须每次手动转码才行……

问题在于从ASCII文件读取汉字会变成乱码,而csv只能用ASCII保存,所以一直在尝试转码解决这个问题。
现在需要每次手动转码才能支持汉字,希望以后能找到更完美的解决办法。

点评

win32API....  发表于 2015-9-5 20:52
「私が来た!  私が見た!  ならば次わ買つだけのこと!」
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 23:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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