开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 4158|回复: 14
收起左侧

[易语言纯源码] URL解码,利用快速文本.能快一点

[复制链接]
结帖率:100% (11/11)
发表于 2018-8-28 13:42:55 | 显示全部楼层 |阅读模式   陕西省渭南市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
用了论坛的一个api,不带模块

  
DLL命令名返回值类型公开备 注
StrToIntExA逻辑型 
DLL库文件名:
shlwapi.dll
在DLL库中对应命令名:
StrToIntExA
参数名类 型传址数组备 注
pszString文本型
dwFlags整数型
piRet整数型

子程序名返回值类型公开备 注
编码_URL解码7文本型 
参数名类 型参考可空数组备 注
参数一文本型
变量名类 型静态数组备 注
源文本快速文本对象 
结果快速文本对象 
偏移整数型 
高位整数型 
低位整数型 
源文本.置文本 (参数一)
偏移 = 1
判断循环首 (偏移 < 源文本.取长度 ())
如果 (源文本.取文本 (偏移, 1)“%”)
结果.添加 (源文本.取文本 (偏移, 1))
高位 = 十六到十_ (源文本.取文本 (偏移 + 1, 1))
低位 = 十六到十_ (源文本.取文本 (偏移 + 2, 1))
偏移 = 偏移 + 2
结果.添加 (字符 (左移 (高位, 4) + 低位))
偏移 = 偏移 + 1
判断循环尾 ()
返回 (结果.取文本 (, ))
子程序名返回值类型公开备 注
十六到十_整数型 
参数名类 型参考可空数组备 注
十六进制文本型
变量名类 型静态数组备 注
TXT整数型 
如果真 (StrToIntExA (“0x” + 十六进制, 1, TXT))
返回 (TXT)
返回 (0)


i支持库列表   支持库注释   
commobj通用对象支持库

评分

参与人数 2好评 +2 精币 +8 收起 理由
呵呵仙 + 1 + 3 感谢发布原创作品,一定好好学习,天天向上
冰点 + 1 + 5 感谢分享,很给力!~

查看全部评分


结帖率:100% (11/11)

签到天数: 20 天

 楼主| 发表于 2018-8-28 19:54:32 | 显示全部楼层   陕西省渭南市
这是优化的一版.速度应该会快吧

  
DLL命令名返回值类型公开备 注
StrToIntExA逻辑型 
DLL库文件名:
shlwapi.dll
在DLL库中对应命令名:
StrToIntExA
参数名类 型传址数组备 注
pszString文本型
dwFlags整数型
piRet整数型

子程序名返回值类型公开备 注
编码_URL解码_API文本型 
参数名类 型参考可空数组备 注
局_参数一文本型
变量名类 型静态数组备 注
局_源文本快速文本对象 
局_结果快速文本对象 
局_偏移整数型 
局_源文本.置文本 (局_参数一)
局_偏移 = 1
判断循环首 (局_偏移 < 局_源文本.取长度 ())
如果真 (局_源文本.取文本 (局_偏移, 1)“%”)
局_结果.添加 (字符 (十六到十_ (局_源文本.取文本 (局_偏移 + 1, 2))))
局_偏移 = 局_偏移 + 2
局_偏移 = 局_偏移 + 1
判断循环尾 ()
返回 (局_结果.取文本 (, ))
子程序名返回值类型公开备 注
十六到十_整数型 
参数名类 型参考可空数组备 注
十六进制文本型
变量名类 型静态数组备 注
TXT整数型 
如果真 (StrToIntExA (“0x” + 十六进制, 1, TXT))
返回 (TXT)
返回 (0)


i支持库列表   支持库注释   
commobj通用对象支持库

回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
发表于 2018-9-2 15:44:09 | 显示全部楼层   浙江省宁波市
6666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2018-9-1 15:22:00 | 显示全部楼层   新疆维吾尔自治区乌鲁木齐市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:73% (27/37)

签到天数: 18 天

发表于 2018-8-30 23:34:35 | 显示全部楼层   河北省石家庄市
感谢发布原创作品,一定好好学习,天天向上
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 12 天

发表于 2018-8-29 19:36:01 | 显示全部楼层   湖北省黄冈市
感谢分享         
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 20 天

 楼主| 发表于 2018-8-29 09:20:58 | 显示全部楼层   陕西省渭南市
cf2006a 发表于 2018-8-29 08:23
.版本 2

.子程序 文本_取代码, 整数型, 公开, 只能处理GBK的文本,返回文本中指定位置处字符的代码。如 ...

子程序名        返回值类型        公开        备 注
十六到十        整数型                
参数名        类 型        参考        可空        数组        备 注
_参数1        文本型                                  
置入代码 ({ 139, 85, 8, 139, 18, 49, 192, 138, 2, 60, 57, 118, 2, 44, 7, 138, 98, 1, 128, 252, 57, 118, 3, 128, 236, 7, 128, 236, 48, 192, 224, 4, 8, 224, 201, 194, 4, 0 })
返回 (0)

我改了个专用的.一次处理两个字符
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 20 天

 楼主| 发表于 2018-8-29 09:19:46 | 显示全部楼层   陕西省渭南市
cf2006a 发表于 2018-8-29 08:23
.版本 2

.子程序 文本_取代码, 整数型, 公开, 只能处理GBK的文本,返回文本中指定位置处字符的代码。如 ...

昨晚写了一个.一次处理两个字符.
易处理这么慢就是中间环节太多了.就是用汇编.也最好是一次多处理数据.来减少调用

  
子程序名返回值类型公开备 注
编码_URL解码_API文本型 
参数名类 型参考可空数组备 注
局_参数一文本型
变量名类 型静态数组备 注
局_源文本快速文本对象 
局_结果快速文本对象 
局_偏移整数型 
局_长度整数型 
局_当前文本文本型 
局_源文本.置文本 (局_参数一)
局_偏移 = 1
局_长度 = 局_源文本.取长度 ()
判断循环首 (局_偏移 < 局_长度)
局_当前文本 = 局_源文本.取文本 (局_偏移, 1)
如果 (局_当前文本 = “%”)
局_结果.添加 (字符 (十六到十 (局_源文本.取文本 (局_偏移 + 1, 2))))
局_偏移 = 局_偏移 + 2
局_结果.添加 (局_当前文本)
局_偏移 = 局_偏移 + 1
判断循环尾 ()
返回 (局_结果.取文本 (, ))
子程序名返回值类型公开备 注
十六到十整数型 
参数名类 型参考可空数组备 注
_参数1文本型
置入代码 ({ 139, 85, 8, 139, 18, 49, 192, 138, 2, 60, 57, 118, 2, 44, 7, 138, 98, 1, 128, 252, 57, 118, 3, 128, 236, 7, 128, 236, 48, 192, 224, 4, 8, 224, 201, 194, 4, 0 })
返回 (0)


i支持库列表   支持库注释   
commobj通用对象支持库

回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 20 天

 楼主| 发表于 2018-8-29 09:19:05 | 显示全部楼层   陕西省渭南市
cf2006a 发表于 2018-8-29 08:23
.版本 2

.子程序 文本_取代码, 整数型, 公开, 只能处理GBK的文本,返回文本中指定位置处字符的代码。如 ...

昨晚写了一个.一次处理两个字符.
易处理这么慢就是中间环节太多了.就是用汇编.也最好是一次多处理数据.来减少调用

  
子程序名返回值类型公开备 注
编码_URL解码_API文本型 
参数名类 型参考可空数组备 注
局_参数一文本型
变量名类 型静态数组备 注
局_源文本快速文本对象 
局_结果快速文本对象 
局_偏移整数型 
局_长度整数型 
局_当前文本文本型 
局_源文本.置文本 (局_参数一)
局_偏移 = 1
局_长度 = 局_源文本.取长度 ()
判断循环首 (局_偏移 < 局_长度)
局_当前文本 = 局_源文本.取文本 (局_偏移, 1)
如果 (局_当前文本 = “%”)
局_结果.添加 (字符 (十六到十 (局_源文本.取文本 (局_偏移 + 1, 2))))
局_偏移 = 局_偏移 + 2
局_结果.添加 (局_当前文本)
局_偏移 = 局_偏移 + 1
判断循环尾 ()
返回 (局_结果.取文本 (, ))
子程序名返回值类型公开备 注
十六到十整数型 
参数名类 型参考可空数组备 注
_参数1文本型
置入代码 ({ 139, 85, 8, 139, 18, 49, 192, 138, 2, 60, 57, 118, 2, 44, 7, 138, 98, 1, 128, 252, 57, 118, 3, 128, 236, 7, 128, 236, 48, 192, 224, 4, 8, 224, 201, 194, 4, 0 })
返回 (0)


i支持库列表   支持库注释   
commobj通用对象支持库

回复 支持 反对

使用道具 举报

结帖率:97% (31/32)

签到天数: 22 天

发表于 2018-8-29 08:23:03 | 显示全部楼层   福建省福州市
本帖最后由 cf2006a 于 2018-8-29 08:24 编辑
jr21066 发表于 2018-8-28 19:54
这是优化的一版.速度应该会快吧

[e=4].版本 2

.版本 2

.子程序 文本_取代码, 整数型, 公开, 只能处理GBK的文本,返回文本中指定位置处字符的代码。如果指定位置超出文本长度,返回0。
.参数 欲取字符代码的文本, 文本型
.参数 欲取其代码的字符位置, 整数型, , 不可以被省略。1为首位置,2为第2个位置,如此类推。

置入代码 ({ 139, 77, 12, 131, 249, 0, 126, 16, 59, 193, 124, 12, 139, 69, 8, 139, 0, 73, 15, 190, 4, 8, 235, 2, 51, 192, 201, 194, 8, 0 })
返回 (0)


如果每次取文本中一个字符可以用这个汇编试一试!!
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 1 天

发表于 2018-8-29 07:50:32 | 显示全部楼层   福建省莆田市
这个不错!
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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