Project1
标题:
解决66rpg对话加强脚本中无法使用汉字文件名的问题
[打印本页]
作者:
kaien
时间:
2009-2-1 00:10
提示:
作者被禁止或删除 内容自动屏蔽
作者:
亿万星辰
时间:
2009-2-1 00:35
嗯,不错的想法,不过其实用一句转码就可以支持中文了……
不过一般文件名还是命名成英文的比较好……
作者:
suicaoya123
时间:
2009-2-1 00:38
至少可以少打几个字母....英文的好..了...省得麻烦
作者:
kaien
时间:
2009-2-1 00:59
提示:
作者被禁止或删除 内容自动屏蔽
作者:
亿万星辰
时间:
2009-2-1 17:23
#------------------------------------------------------------------------------
# Moonlight INN
# http://cgi.members.interq.or.jp/aquarius/rasetsu/
# RaTTiE
#
[email protected]
#------------------------------------------------------------
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
#==============================================
module EasyConv
# API梡掕悢掕媊
CP_ACP = 0
CP_UTF8 = 65001
#--------------------------------------------------------------------------
# 仠 S-JIS -> UTF-8
#--------------------------------------------------------------------------
def s2u(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# S-JIS -> Unicode
len = m2w.call(CP_ACP, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_ACP, 0, text, -1, buf, buf.size/2);
# Unicode -> UTF-8
len = w2m.call(CP_UTF8, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_UTF8, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :s2u
#--------------------------------------------------------------------------
# 仠 UTF-8 -> S-JIS
#--------------------------------------------------------------------------
def u2s(text)
# API掕媊
m2w = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
w2m = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
# UTF-8 -> Unicode
len = m2w.call(CP_UTF8, 0, text, -1, nil, 0);
buf = "\0" * (len*2)
m2w.call(CP_UTF8, 0, text, -1, buf, buf.size/2);
# Unicode -> S-JIS
len = w2m.call(CP_ACP, 0, buf, -1, nil, 0, nil, nil);
ret = "\0" * len
w2m.call(CP_ACP, 0, buf, -1, ret, ret.size, nil, nil);
return ret
end
# module_function偲偟偰岞奐
module_function :u2s
end
复制代码
就是这个东西
作者:
風雲Ж贝贝
时间:
2009-2-1 17:50
# 检查指定路径的文件是否存在
def checkfile(filepath)
f = open(filepath,"r")
if f!=nil
f.close
return true
end
f.close
return false
end
复制代码
这句似乎有问题
我用这个判断不行
这句是说某文件为空时返回false,没文件时好象不能返回,在open那段出错了
我看还是用“Dir["*"].include?”判断有没有文件好
作者:
goahead
时间:
2009-2-1 17:52
提示:
作者被禁止或删除 内容自动屏蔽
作者:
風雲Ж贝贝
时间:
2009-2-1 17:58
# EasyConv::s2u(text) : S-JIS -> UTF-8
# EasyConv::u2s(text) : UTF-8 -> S-JIS
复制代码
这不是说了么
作者:
kaien
时间:
2009-2-2 10:13
提示:
作者被禁止或删除 内容自动屏蔽
作者:
風雲Ж贝贝
时间:
2009-2-2 17:33
FileTest.exist?(EasyConv.s2u("Graphics/battlers/#{@face}"))
复制代码
这个方法好象用错了,应该是u2s不是s2u,不过转码是真的判断不了
你说用open没文件会返回nil,我测试过了
确实可靠
昨天你好象没加begin,
现在加了就真能判定了
作者:
亿万星辰
时间:
2009-2-2 22:56
看来是我记错了。
不过我肯定记得有人告诉过我如何判断Unicode文件名的方法
作者:
風雲Ж贝贝
时间:
2009-2-2 23:01
Unicode文件名是什么东西?
是怎样判定的?
作者:
goahead
时间:
2009-2-3 01:26
提示:
作者被禁止或删除 内容自动屏蔽
作者:
小华
时间:
2009-2-3 03:40
提示:
作者被禁止或删除 内容自动屏蔽
作者:
亿万星辰
时间:
2009-2-3 04:32
以下引用
風雲Ж贝贝于2009-2-2 15:01:30
的发言:
Unicode文件名是什么东西?
是怎样判定的?
一般就是指所说的全角字符,汉字啊啥的
作者:
yangff
时间:
2009-2-4 18:13
很抱歉,我成功了(没用你的函数直接判断)vx
作者:
yangff
时间:
2009-2-4 18:35
Private Declare Function SHFileExists Lib "shell32" Alias "#45" (ByVal szPath As String) As Long
作者:
沉影不器
时间:
2009-2-5 06:32
提示:
作者被禁止或删除 内容自动屏蔽
作者:
kaien
时间:
2009-2-6 14:06
提示:
作者被禁止或删除 内容自动屏蔽
作者:
沉影不器
时间:
2009-2-8 22:57
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1