//【剑仙教程】编码类。加载任何编码的txt
var hThread, path
功能 执行()
var 路径 = 浏览框获取文本("浏览框0")
var 编码格式 = 识别txt编码格式(路径)
messagebox("编码格式:" & 编码格式)
var text = LoadUTF8(路径, 编码格式)
messagebox(text)
结束
本帖隐藏的内容
功能 识别txt编码格式(文件路径)
var Stream, Codes, TEXT_a, 编码ID
Stream = com("ADODB.Stream")//文件操作的对象
Stream.Type = 2 //1-二进制,2-文本
Stream.charset("x-ansi")
Stream.Open() //打开文件流操作
Stream.LoadFromFile(文件路径)//读入文件
TEXT_a = Stream.ReadText(3)//获取文件2个字节文本
编码ID = 字符串返回字符(TEXT_a, 0) & "|" & 字符串返回字符(TEXT_a, 1) & "|" & 字符串返回字符(TEXT_a, 2)
traceprint(编码ID)
//按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息.
//所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得知其编码的格式。
select(编码ID)
条件 "255|254|102"
Codes = "Unicode"
条件 "254|255|-1"
Codes = "Unicode big endian"
条件 "239|187|191"
Codes = "UTF-8"
默认
Codes = "gb2312"//txt文件的ANSI编码
end
Stream.Close()
Stream = null
return Codes
结束
//参数2: 编码格式 选填以下4个之一:
//"gb2312" "Unicode" "Unicode big endian" "UTF-8"
功能 LoadUTF8(文件路径, 编码格式 = "UTF-8")
//下面是VBS代码.
//Dim oStream As ADODB.Stream
//Set oStream = New ADODB.Stream
//oStream.Open
//oStream.Charset = "UTF-8"
//oStream.LoadFromFile FileName
//LoadUTF8 = oStream.ReadText()
//oStream.Close
//翻译为tc代码.
var oStream = com("ADODB.Stream")
oStream.Open()
oStream.Charset = 编码格式
oStream.LoadFromFile(文件路径)//把txt文件载入oStream对象.
var text = oStream.ReadText()//tc的字符串,采用Unicode编码格式.
//把txt文件,转为Unicode编码格式,并储存到text变量.
oStream.Close()
return text
结束
功能 启动_热键()
var bool = 线程获取状态(hThread)
if(bool == 0)
hThread = 线程开启("执行", "")
end
结束
功能 终止_热键()
线程关闭(hThread)
结束
功能 加载任何编码的txt_初始化()
path = 系统获取进程路径()
path = path & "data\\config.ini"
var 路径 = 文件读配置("小节名", "浏览框0", path)
浏览框设置文本("浏览框0", 路径)
结束
功能 加载任何编码的txt_销毁()
var 路径 = 浏览框获取文本("浏览框0")
文件写配置("小节名", "浏览框0", 路径, path)
结束
|