精易论坛

标题: 【原创+首发】将文本的易语言代码转换为易命令(流量勿入),支持DLL,数据类型,常量... [打印本页]

作者: 1185384801    时间: 2018-8-20 16:24
标题: 【原创+首发】将文本的易语言代码转换为易命令(流量勿入),支持DLL,数据类型,常量...
这个帖子我先声明下,这个不是标题党,而是真正把易代码(DLL,数据类型,子程序和常量都可以)直接转换为易文件!!!利用了易向导支持库 (2.0#0版)(其实本帖子也是一个教程哦)
记得当时@易正易则 和@镇坛道德标杆 因为一个TXT转成易文件而大打出手(撕 逼而已)然后我就萌生了这个想法
有人记得易向导支持库 (2.0#0版)吗?(别说记得,有没有这个支持库恐怕很多易友都不知道吧?)
而本程序,就是根据易向导支持库来编写的(什么?易向导支持库??编写易向导???之前有这种东西????
还真的有(回去看看黑月和易语言支持库编写向导)
但是向导源码网络是有吗?
有的(曾经有人开源过)
但是那个源码注释也没有啊?命令一脸懵
这个倒是对的!
所以我就动手开始研究易向导支持库(你以为很容易啊,用了2天!!就研究10多个命令)
进入正题:
先来看看这些命令的全部解释:
解释.txt (13.66 KB, 下载次数: 130)
然后呢?加入输入了DLL之类的东西之后怎么办呢??是怎么判断有多少个DLL以及其他的呢???
还记得我的一个帖子吗?
超级用户—易语言代码解析类
http://125.confly.eu.org/forum.php?mod=viewthread&tid=14089448
(出处: 精易论坛)
当时说这个东东有什么用(现在你看有用了没??)
回到正题:
至于“置作者信息”“置程序信息”这俩命令估计一看就懂
然后进入核心部分
其中有一些东西要许是必须掌握的,那就是(解释):
  
' 数据类型名称:程序项类型    英文名称:AppItemType
' 本数据类型为枚举常量集合类型,共包含 13 个枚举常量值。
' 操作系统需求: Windows
' 本类型用作提供所有可用的程序项类型。
' 枚举常量值<1>的中文名称为“程序集”,英文名称为“Module”,值为1。
' 枚举常量值<2>的中文名称为“子程序”,英文名称为“Sub”,值为2。
' 子程序可以“子程序名称”或“程序集名.子程序名”格式来表示。
' 枚举常量值<3>的中文名称为“全局变量”,英文名称为“GlobalVar”,值为4。
' 枚举常量值<4>的中文名称为“程序集变量”,英文名称为“ModuleVar”,值为8。
' 程序集变量以“程序集名.变量名”格式来表示。
' 枚举常量值<5>的中文名称为“局部变量”,英文名称为“LocalVar”,值为16。
' 局部变量以“子程序名.局部变量名”或“程序集名.子程序名.局部变量名”格式来表示。
' 枚举常量值<6>的中文名称为“子程序参数”,英文名称为“SubArg”,值为32。
' 子程序参数以“子程序名.参数名”或“程序集名.子程序名.参数名”格式来表示。
' 枚举常量值<7>的中文名称为“数据类型”,英文名称为“DataType”,值为64。
' 枚举常量值<8>的中文名称为“数据类型成员”,英文名称为“DataTypeElement”,值为128。
' 数据类型成员以“数据类型名.成员名”格式来表示。
' 枚举常量值<9>的中文名称为“DLL命令”,英文名称为“DllCmd”,值为256。
' 枚举常量值<10>的中文名称为“DLL命令参数”,英文名称为“DllCmdArg”,值为512。
' DLL命令参数以“DLL命令名.参数名”格式来表示。
' 枚举常量值<11>的中文名称为“窗口”,英文名称为“Win”,值为1024。
' 枚举常量值<12>的中文名称为“窗口组件”,英文名称为“WinControl”,值为2048。
' 窗口组件以“窗口名.窗口组件名”格式来表示。
' 枚举常量值<13>的中文名称为“常量或资源”,英文名称为“Resource”,值为4096。
' 组件事件列表:
' 枚举常量值“程序集”所处集合数据类型为“程序项类型”,英文名称为“Module”,值为1。
' 枚举常量值“子程序”所处集合数据类型为“程序项类型”,英文名称为“Sub”,值为2。
' 子程序可以“子程序名称”或“程序集名.子程序名”格式来表示。
' 枚举常量值“全局变量”所处集合数据类型为“程序项类型”,英文名称为“GlobalVar”,值为4。
' 枚举常量值“程序集变量”所处集合数据类型为“程序项类型”,英文名称为“ModuleVar”,值为8。
' 程序集变量以“程序集名.变量名”格式来表示。
' 枚举常量值“局部变量”所处集合数据类型为“程序项类型”,英文名称为“LocalVar”,值为16。
' 局部变量以“子程序名.局部变量名”或“程序集名.子程序名.局部变量名”格式来表示。
' 枚举常量值“子程序参数”所处集合数据类型为“程序项类型”,英文名称为“SubArg”,值为32。
' 子程序参数以“子程序名.参数名”或“程序集名.子程序名.参数名”格式来表示。
' 枚举常量值“数据类型”所处集合数据类型为“程序项类型”,英文名称为“DataType”,值为64。
' 枚举常量值“数据类型成员”所处集合数据类型为“程序项类型”,英文名称为“DataTypeElement”,值为128。
' 数据类型成员以“数据类型名.成员名”格式来表示。
' 枚举常量值“DLL命令”所处集合数据类型为“程序项类型”,英文名称为“DllCmd”,值为256。
' 枚举常量值“DLL命令参数”所处集合数据类型为“程序项类型”,英文名称为“DllCmdArg”,值为512。
' DLL命令参数以“DLL命令名.参数名”格式来表示。
' 枚举常量值“窗口”所处集合数据类型为“程序项类型”,英文名称为“Win”,值为1024。
' 枚举常量值“窗口组件”所处集合数据类型为“程序项类型”,英文名称为“WinControl”,值为2048。
' 窗口组件以“窗口名.窗口组件名”格式来表示。
' 枚举常量值“常量或资源”所处集合数据类型为“程序项类型”,英文名称为“Resource”,值为4096。
' 数据类型名称:程序项属性    英文名称:AppItemProperty
' 本数据类型为枚举常量集合类型,共包含 12 个枚举常量值。
' 操作系统需求: Windows
' 本类型用作提供所有可用的程序项属性。
' 枚举常量值<1>的中文名称为“名称”,英文名称为“Name”,值为1。
' 文本型数据。
' 枚举常量值<2>的中文名称为“备注”,英文名称为“Explain”,值为2。
' 需要文本型数据,如果设置时提供“$”特定字符串,则只清除已有备注内容中所有的标记和模板条件文本,而不实际置入“$”。
' 枚举常量值<3>的中文名称为“常量或资源值”,英文名称为“Context”,值为3。
' 数据类型根据具体常量或资源数据类型定。
' 枚举常量值<4>的中文名称为“数据类型”,英文名称为“DataType”,值为4。
' 譬如变量的数据类型、子程序和DLL命令的返回值数据类型等,数据类型为本支持库中所提供的“程序项数据类型”。
' 枚举常量值<5>的中文名称为“数组类型”,英文名称为“AryType”,值为5。
' 使用形如“xxx”或“xxx, xxx, ...”的格式文本分别提供单维和多维数组定义,其中“xxx”为数值,代表对应维的上限值。
' 枚举常量值<6>的中文名称为“静态”,英文名称为“Static”,值为6。
' 逻辑型数据。
' 枚举常量值<7>的中文名称为“参考”,英文名称为“ByRef”,值为7。
' 譬如变量的“参考”类型,DLL命令的“传址”类型等,为逻辑型数据。
' 枚举常量值<8>的中文名称为“可空”,英文名称为“AllowEmpty”,值为8。
' 逻辑型数据。
' 枚举常量值<9>的中文名称为“公开”,英文名称为“Public”,值为9。
' 逻辑型数据。
' 枚举常量值<10>的中文名称为“收缩”,英文名称为“Hidden”,值为10。
' 提供子程序的收缩隐藏状态,为逻辑型数据。
' 枚举常量值<11>的中文名称为“DLL库文件名”,英文名称为“DllLibFileName”,值为11。
' 文本型数据。
' 枚举常量值<12>的中文名称为“DLL库命令名”,英文名称为“DllLibCmdName”,值为12。
' 文本型数据。
' 组件事件列表:
' 枚举常量值“名称”所处集合数据类型为“程序项属性”,英文名称为“Name”,值为1。
' 文本型数据。
' 枚举常量值“备注”所处集合数据类型为“程序项属性”,英文名称为“Explain”,值为2。
' 需要文本型数据,如果设置时提供“$”特定字符串,则只清除已有备注内容中所有的标记和模板条件文本,而不实际置入“$”。
' 枚举常量值“常量或资源值”所处集合数据类型为“程序项属性”,英文名称为“Context”,值为3。
' 数据类型根据具体常量或资源数据类型定。
' 枚举常量值“数据类型”所处集合数据类型为“程序项属性”,英文名称为“DataType”,值为4。
' 譬如变量的数据类型、子程序和DLL命令的返回值数据类型等,数据类型为本支持库中所提供的“程序项数据类型”。
' 枚举常量值“数组类型”所处集合数据类型为“程序项属性”,英文名称为“AryType”,值为5。
' 使用形如“xxx”或“xxx, xxx, ...”的格式文本分别提供单维和多维数组定义,其中“xxx”为数值,代表对应维的上限值。
' 枚举常量值“静态”所处集合数据类型为“程序项属性”,英文名称为“Static”,值为6。
' 逻辑型数据。
' 枚举常量值“参考”所处集合数据类型为“程序项属性”,英文名称为“ByRef”,值为7。
' 譬如变量的“参考”类型,DLL命令的“传址”类型等,为逻辑型数据。
' 枚举常量值“可空”所处集合数据类型为“程序项属性”,英文名称为“AllowEmpty”,值为8。
' 逻辑型数据。
' 枚举常量值“公开”所处集合数据类型为“程序项属性”,英文名称为“Public”,值为9。
' 逻辑型数据。
' 枚举常量值“收缩”所处集合数据类型为“程序项属性”,英文名称为“Hidden”,值为10。
' 提供子程序的收缩隐藏状态,为逻辑型数据。
' 枚举常量值“DLL库文件名”所处集合数据类型为“程序项属性”,英文名称为“DllLibFileName”,值为11。
' 文本型数据。
' 枚举常量值“DLL库命令名”所处集合数据类型为“程序项属性”,英文名称为“DllLibCmdName”,值为12。
' 文本型数据。


其中我们会用到大量的这些集合常量
首先核心是解析代码:
很简单对吧(调用模块就可以了)
然后进入让人崩溃的部分:
(题外话:写的时候我的心态也差点崩了)
虽然看着很密集(废话),但是注释基本都是精确到行的(废话,不写注释还让易友怎么学习)
其中,有些易友可能看出来了,这些都是需要模板的
模板已经写好,放点图片:
有的小伙伴可能已经看到了,子程序的注释有$(a),这个是标注程序为a的意思(可以便于识别并且在最后部分删除)
然后??
然后就可以以此类推啦……
大部分的源码都加上了注释(打字打得伤心
然后易向导支持库就应该基本都会了~~(那么以后都应该知道易向导是怎么工作的吧?)
(其实写向导真的不难)
打了那么多字(早就打痛了)
最后还是那句老话:源码回复下载!!
最后说一句:如果你觉得可以的话,请:
一下(点2下又不会扣分,而且还会加精币哦!!!加精币哦!!!),源码回复下载!!万水千山总是情,给个好评行不行?人间自有真情在,不给好评不是爱!

[hide=d9999] 易代码转易文件(易向导).zip (347.51 KB, 下载次数: 607) [/hide]


作者: 冰点    时间: 2018-8-20 16:54
帖子的很详细。
话说这个库确实是很强大的, 我想当初吴总 是想把他放到核心库的吧。。。。。
作者: 1185384801    时间: 2018-8-20 16:57
冰点 发表于 2018-8-20 16:54
帖子的很详细。
话说这个库确实是很强大的, 我想当初吴总 是想把他放到核心库的吧。。。。。

也许,但是易语言自带真正的例子只有API助手一个,虽然只有几行
作者: 空竹    时间: 2018-8-20 17:12
万水千山总是情,给个好评行不行?人间自有真情在,不给好评不是爱!
作者: 743567274    时间: 2018-8-20 17:12
顶一个!!!感谢开源!!!
作者: 一尘不染    时间: 2018-8-20 17:15
火钳刘明。谢谢合作
作者: wqy8593521    时间: 2018-8-20 17:15
感谢楼主分析

作者: 大司命    时间: 2018-8-20 17:18

共同努力,共同进步~
作者: zl2017    时间: 2018-8-20 17:22
这个很实用,正需要用到。
作者: xtpl    时间: 2018-8-20 17:24
这个要看看,必须滴!

作者: wo2010000n    时间: 2018-8-20 17:32
厉害,看看,谢谢分享~~~

作者: ERHUOB    时间: 2018-8-20 17:34

作者: 这就是用户名    时间: 2018-8-20 17:37
大佬666
作者: 网络注册会员    时间: 2018-8-20 17:45
好强大好强大
作者: 网络注册络员    时间: 2018-8-20 17:46
必须顶你一下
作者: 拧紧    时间: 2018-8-20 17:49
666666666666666666
作者: 乾亦元    时间: 2018-8-20 18:08
谢谢分享!!!!!!!

作者: TBit    时间: 2018-8-20 18:10
谢谢分享
作者: Su·    时间: 2018-8-20 18:11
谢谢分享!!!!!!!
作者: 汉族    时间: 2018-8-20 18:11
易想到我是知道滴
作者: 乐天°    时间: 2018-8-20 18:13
感谢发布原创作品,精易因你更精彩!
作者: xslyhk    时间: 2018-8-20 18:25
谢谢分享哦
作者: blanks    时间: 2018-8-20 18:43
支持开源~!感谢分享
作者: yueying    时间: 2018-8-20 18:46
本帖最后由 yueying 于 2018-8-20 19:02 编辑

希望能够继续完善,由于e语言捆绑IDE,无法通过.txt或其他格式查看修改代码,导致易语言直接拒绝了企业团队的引入,因为不能通过Git团队协作开发
作者: ffsfdsa    时间: 2018-8-20 18:52
将文本的易语言代码转换为易命令(流量勿入),支持DLL,数据类型,常量

作者: Code123    时间: 2018-8-20 19:31
谢谢分享!!!!!!!
作者: 本孤癖    时间: 2018-8-20 19:32
6666666666666
作者: 情雅    时间: 2018-8-20 19:34
谢谢楼主分享
作者: 西天守护神    时间: 2018-8-20 20:10
支持楼主,支持精益

作者: futiem    时间: 2018-8-20 20:14
人间自有真情在
作者: 胖虎O    时间: 2018-8-20 20:43
看起来很酷炫,研究一下
作者: jiang8125    时间: 2018-8-20 20:47
感谢分享,学习学习

作者: juzhen    时间: 2018-8-20 20:52
谢谢分享,!!!
作者: 反客为主    时间: 2018-8-20 20:56
感谢分享,,,,
作者: 傻妞    时间: 2018-8-20 21:02
看看好玩不 。。

作者: 冯古屋    时间: 2018-8-20 21:04
你还不是嘉宾吗?
作者: 1185384801    时间: 2018-8-20 21:05
冯古屋 发表于 2018-8-20 21:04
你还不是嘉宾吗?

当然
不是
作者: 517027168    时间: 2018-8-20 21:08
真厉害!!!!

作者: xtex    时间: 2018-8-20 21:11
早就知道这个支持库了……{:3_42:}{:3_42:}
作者: 1185384801    时间: 2018-8-20 21:23
汉族 发表于 2018-8-20 18:11
易想到我是知道滴

主要很多函数命名理解起来很头疼,例子几乎没有
作者: 闪电    时间: 2018-8-20 21:27
        很赞同,谢谢!
作者: zsk134    时间: 2018-8-20 21:44
感谢分享。。。。。。
作者: hikarugl    时间: 2018-8-20 21:45
死了多少脑细胞?

作者: ForeverXJie    时间: 2018-8-20 21:57
楼主的帖子个个是精华
作者: 够爱    时间: 2018-8-20 21:58
大哥,我已经全部看完了,不过我没看懂,小弟才疏学浅,请问这个是干啥用的?
作者: 夜的静night    时间: 2018-8-20 21:58
有没有历程  哈哈

作者: 凉桔    时间: 2018-8-20 22:07
支持开源~!感谢分享
作者: 谁的坏叔叔    时间: 2018-8-20 22:09

作者: anim510    时间: 2018-8-20 22:16

作者: 12032594    时间: 2018-8-20 22:23
666666666666666666666666666666666666666
作者: a6546    时间: 2018-8-20 22:37
真的好不错啊

作者: 云不器    时间: 2018-8-20 22:44
支持开源~!感谢分享
作者: kmskik    时间: 2018-8-20 23:22
不知道干嘛用的
作者: By平凡    时间: 2018-8-21 00:18
感谢开源,很好的一个源码!
作者: fyh505099    时间: 2018-8-21 00:22
好东西支持起来

作者: rpptliang    时间: 2018-8-21 02:37
666666666666666666666666666666666666666
作者: icyjin    时间: 2018-8-21 03:58
好东西,下载关注

作者: 你皮你在皮    时间: 2018-8-21 04:24
学习学习哈

作者: 1229338788    时间: 2018-8-21 07:06
支持开源~!感谢分享
作者: huben    时间: 2018-8-21 07:09
支持开源~!感谢分享
作者: ノ朽默℡    时间: 2018-8-21 07:11
顶楼主啦..希望楼主多发精品好帖啦.....
作者: 无敌灰灰    时间: 2018-8-21 07:27
这个不错,可以远程获取数据来实现功能,防止 破J。。
作者: dilenzhu    时间: 2018-8-21 07:28
新技能已get√
作者: 魔月歌    时间: 2018-8-21 08:03
新技能已get√
作者: 剑域残梦重生    时间: 2018-8-21 08:04
6666大叔大婶大所多
作者: zjghjs    时间: 2018-8-21 08:41
感谢分享,楼主不容易!
作者: 星空Allstar    时间: 2018-8-21 08:42
支持开源~!感谢分享

作者: wyr    时间: 2018-8-21 08:43
顶楼主..希望楼主多发精品好帖啦.....
作者: 秋海明月    时间: 2018-8-21 08:47
感谢分享。
作者: 酷易自绘    时间: 2018-8-21 08:52
文本代码直接转换成.e吗

作者: 陈翼霖    时间: 2018-8-21 09:01
货真价实——干货 很给力的
作者: 互斥体    时间: 2018-8-21 09:03
万水千山总是情,给个好评我看行~
作者: 互斥体    时间: 2018-8-21 09:04
新技能已get√
作者: 互斥体    时间: 2018-8-21 09:04
支持开源~!感谢分享
作者: 互斥体    时间: 2018-8-21 09:05
新技能已get√
作者: a1065809672    时间: 2018-8-21 09:05
支持开源~!感谢分享

作者: 空丶城    时间: 2018-8-21 09:09
谢谢分享~~~~~~~~
作者: wanzhenghe999    时间: 2018-8-21 09:17
很好很强悍,此处应有鼓励!

作者: ssxpvicp    时间: 2018-8-21 09:23
真的可以看一下的源码
作者: vSpear    时间: 2018-8-21 09:36
小弟看不懂
作者: wangzi1017    时间: 2018-8-21 10:02
学习一下,谢谢

作者: 韦贝贝    时间: 2018-8-21 10:38
支持开源~!感谢分享
作者: DF-Sky    时间: 2018-8-21 10:40
不是很明白具体作用
作者: 梦想ol    时间: 2018-8-21 11:17
66666666666666666666666666666
作者: 国王软件    时间: 2018-8-21 11:36
了解一下,看看!
作者: yinghao2005    时间: 2018-8-21 12:16
这个不错哦

作者: zhouw    时间: 2018-8-21 12:17
支持一个66666666666666666

作者: 凌哥    时间: 2018-8-21 12:28
没看懂。。。。。。

作者: luzhenfang    时间: 2018-8-21 12:41
dalao请收下我的膝盖  
作者: luzhenfang    时间: 2018-8-21 12:41
火钳刘明....
作者: luzhenfang    时间: 2018-8-21 12:41
感谢分享 谢谢了
作者: 178826559    时间: 2018-8-21 12:52
不明觉厉!
作者: a135123    时间: 2018-8-21 13:00
谢谢分享,回复下载来看看

作者: liang681418    时间: 2018-8-21 13:08
大神>o<666666
作者: う网淅乄    时间: 2018-8-21 13:30
流量照样进来  无限流量就是任性
作者: 筱顺    时间: 2018-8-21 13:49
火钳刘明                                    

作者: luoran    时间: 2018-8-21 13:49
支持开源~!感谢分享
作者: 朱辉    时间: 2018-8-21 13:52
谢谢分享

作者: Bszk    时间: 2018-8-21 13:57
6666666666666大佬请收下我的膝盖!!
作者: 正拉留    时间: 2018-8-21 14:57
厉害了





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4