CHM帮助文档解析易语言源码

CHM帮助文档解析易语言源码

.版本 2 .支持库 spec .程序集 程序集_解析CHM文档 .程序集变量 程_文件号, 整数型 .程序集变量 程_目录块大小, 整数型 .程序集变量 程_Header1长度, 整数型 .程序集变量 程_Header2长度, 整数型 .程序集变量 程_目录块数, 整数型 .程序集变量 程_PMGL块数, 整数型 .程序集变量 程_QuickrefSection, 整数型, , , '密度 .子程序 打开CHM文件 .参数 参_文件名, 文本型 .局部变量 局_字节集, 字节集 .局部变量 局_读写位置, 整数型 .局部变量 局_Str, 文本型 程_文件号 = 打开文件 (参_文件名, #读入, #禁止写) 局_字节集 = 读入字节集 (程_文件号, 4) 调试输出 (“标识:” + 到文本 (局_字节集)) ' ITSF ' 本源码来自三叶资源网(www.sanye.cx) 局_字节集 = 读入字节集 (程_文件号, 4) 调试输出 (“版本号:” + 到文本 (取字节集数据 (局_字节集, #整数型, ))) ' 版本号 3 局_字节集 = 读入字节集 (程_文件号, 4) 调试输出 (“头文件总长度:” + 到文本 (取字节集数据 (局_字节集, #整数型, ))) 局_字节集 = 读入字节集 (程_文件号, 4) 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, ))) ' 1 未知 局_字节集 = 读入字节集 (程_文件号, 4) 调试输出 (“时间戳:” + 到文本 (取字节集数据 (局_字节集, #整数型, ))) ' 时间戳 ‘132277464 局_字节集 = 读入字节集 (程_文件号, 4) 调试输出 (“语言ID:” + 到文本 (取字节集数据 (局_字节集, #整数型, )) + “ 简体中文”) ' 语言ID 2052 局_字节集 = 读入字节集 (程_文件号, 16) 局_Str = “Guid1:” + 字节集_到十六进制 (局_字节集) ' 10FD017CAA7BD0119E0C00A0C922E6EC 对于GUID不是很懂不知道为啥前半段是倒过来的 局_字节集 = 读入字节集 (程_文件号, 16) ' 11FD017CAA7BD0119E0C00A0C922E6EC 对于GUID不是很懂不知道为啥前半段是倒过来的 调试输出 (局_Str + “,Guid2:” + 字节集_到十六进制 (局_字节集)) 局_字节集 = 读入字节集 (程_文件号, 8) 局_Str = “Header1Star:” + 到文本 (取字节集数据 (局_字节集, #整数型, )) 局_字节集 = 读入字节集 (程_文件号, 8) ' Header1Star 96 ' Header1Len 24 程_Header1长度 = 取字节集数据 (局_字节集, #整数型, ) 调试输出 (局_Str + “ Header1Len:” + 到文本 (程_Header1长度)) 局_字节集 = 读入字节集 (程_文件号, 8) 局_Str = “Header2Star:” + 到文本 (取字节集数据 (局_字节集, #整数型, )) 局_字节集 = 读入字节集 (程_文件号, 8) 程_Header2长度 = 取字节集数据 (局_字节集, #整数型, ) 调试输出 (局_Str + “ Header2Len:” + 到文本 (程_Header2长度)) ' 本源码来自三叶资源网(www.sanye.cx) 局_字节集 = 读入字节集 (程_文件号, 8) 调试输出 (“内容部分文件偏移:” + 到文本 (取字节集数据 (局_字节集, #整数型, ))) ' 附加头 调试输出 (“头文件分析结束,当前位置:” + 到文本 (取读写位置 (程_文件号))) 读取Header1 () .子程序 读取Header1, , , ' 本源码来自三叶资源网(www.sanye.cx) .局部变量 局_字节集, 字节集 .局部变量 局_读写位置, 整数型 .局部变量 局_位置, 整数型 调试输出 (“======Header1======”) 局_位置 = 1 局_字节集 = 读入字节集 (程_文件号, 程_Header1长度) 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) ' 4 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) ' 4 调试输出 (“文件大小:” + 到文本 (取字节集数据 (局_字节集, #长整数型, 局_位置))) ' 8 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) ' 4 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) ' 4 读取Header2 () .子程序 读取Header2 .局部变量 局_字节集, 字节集 .局部变量 局_位置, 整数型 .局部变量 局_PMGI层, 整数型 调试输出 (“======Header2======”) 局_字节集 = 读入字节集 (程_文件号, 程_Header2长度) 调试输出 (“标识:” + 到文本 (取字节集左边 (局_字节集, 4))) 局_位置 = 5 调试输出 (“版本号:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 调试输出 (“SectionLen:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 程_目录块大小 = 取字节集数据 (局_字节集, #整数型, 局_位置) 调试输出 (“目录块大小:” + 到文本 (程_目录块大小)) 程_QuickrefSection = 取字节集数据 (局_字节集, #整数型, 局_位置) 调试输出 (“QuickrefSection:” + 到文本 (程_QuickrefSection)) 局_PMGI层 = 取字节集数据 (局_字节集, #整数型, 局_位置) 调试输出 (“索引树的深度:” + 到文本 (局_PMGI层)) ' 1.表示没有索引 2.表示有一层的PMGI数据块 调试输出 (“根索引的块号:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 调试输出 (“第一个PMGL的块号:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 调试输出 (“最后一个PMGL的块号:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 程_目录块数 = 取字节集数据 (局_字节集, #整数型, 局_位置) 调试输出 (“目录块数:” + 到文本 (程_目录块数)) .如果真 (局_PMGI层 = 2) 程_目录块数 = 程_目录块数 - 1 .如果真结束 调试输出 (“语言ID:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置)) + “ 英语”) 调试输出 (“Guid:” + 到文本 (字节集_到十六进制 (取字节集中间 (局_字节集, 局_位置, 16)))) 局_位置 = 局_位置 + 16 .计次循环首 (4, ) 调试输出 (“未知用途:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) .计次循环尾 () 局_字节集 = 取字节集中间 (局_字节集, 85, 程_Header2长度 - 84) 读取数据块 (局_字节集) .子程序 读取数据块 .参数 参_Header字节集, 字节集 .局部变量 局_字节集, 字节集 .局部变量 局_位置, 整数型 .局部变量 局_计次, 整数型 .局部变量 局_项目数, 整数型 .局部变量 局_计次n, 整数型 .局部变量 局_QuickRefLen, 整数型 .局部变量 局_int, 字节集 .计次循环首 (程_目录块数, 局_计次) 局_字节集 = 取字节集中间 (参_Header字节集, 程_目录块大小 × (局_计次 - 1) + 1, 程_目录块大小) 调试输出 (“======数据块” + 到文本 (局_计次) + “======”) 调试输出 (“标识:” + 到文本 (取字节集左边 (局_字节集, 4))) 局_位置 = 5 局_QuickRefLen = 取字节集数据 (局_字节集, #整数型, 局_位置) 调试输出 (“QuickRefLen:” + 到文本 (局_QuickRefLen)) 调试输出 (“未知用途(恒为0):” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) 调试输出 (“前一个列表块的块号:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) ' 如果这是第一个块,该值为-1” 调试输出 (“后一个列表块的块号:” + 到文本 (取字节集数据 (局_字节集, #整数型, 局_位置))) ' 如果这是最后一块,该值为-1” 局_项目数 = 取字节集数据 (取字节集右边 (局_字节集, 2), #短整数型, ) 调试输出 (“PMGL块项目数:” + 到文本 (局_项目数)) .计次循环尾 ()
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

CHM帮助文档解析易语言源码》有0个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注