开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 2607|回复: 9
收起左侧

[已解决] 程序_取命令行() bug修复方法

[复制链接]
结帖率:100% (2/2)
发表于 2014-4-14 01:21:52 | 显示全部楼层 |阅读模式   山西省太原市
我不清楚新版本是怎么修复这个bug的,
但是不知你们想过短路径的情况么?
所以在这里我提供一下我的修复方法!

[e]
.版本 2
.支持库 spec

.子程序 程序_取命令行, , 公开, 本命令可以取出在启动易程序时附加在其可执行文件名后面的所有以空格分隔的命令行文本段
.参数 命令行数组, 文本型, 数组, 存放被取回命令行文本的数组变量,本变量数组内被顺序填入在启动易程序时附加在其可执行文件名后面的以空格分隔的命令行文本段
.局部变量 局_文本, 文本型
.局部变量 i, 整数型
.局部变量 位置, 整数型
.局部变量 路径, 文本型

局_文本 = GetCommandLineA ()
' 因为有短路径名的缘故,所以需要下面这些步骤,
.如果 (是否为调试版 ())
.计次循环首 (文本_取出现次数 (取运行目录 (), “\”) + 3, i)
位置 = 寻找文本 (局_文本, “\”, 位置 + 1, 假)
.计次循环尾 ()
' 我的是win7,调试的时候路径不一致: “程序_取命令行: ” | “C:\Users\Administrator\Desktop” | “C:\Users\ADMINI~1\AppData\Local\Temp\EDV6AE8.tmp 1321 445”
.否则
.计次循环首 (文本_取出现次数 (取运行目录 (), “\”) + 1, i)
位置 = 寻找文本 (局_文本, “\”, 位置 + 1, 假)
.计次循环尾 ()
.如果结束
位置 = 寻找文本 (局_文本, 取执行文件名 (), 位置 + 1, 假) + 取文本长度 (取执行文件名 ()) - 1 ' 这个其实是取出了程序的完整路径
.如果真 (位置 = -1)
' 这里防止未预料到的一些情况发生……(假如 执行文件名也被变成短路径 也会到这一步)
调试输出 (“【精易模块报错】程序_取命令行: ”, 取运行目录 (), 局_文本, 取文本左边 (局_文本, 位置))
.如果真结束
路径 = 取文本左边 (局_文本, 位置)
' . 如果不是因为短路径,那么上面的步骤只需要两句即可:
' 路径 = 取运行目录 () + “\” + 取执行文件名 ()
' 路径 = 取文本左边 (局_文本, 寻找文本 (局_文本, 路径, , 假) + 取文本长度 (路径))
.如果 (寻找文本 (路径, #引号, , 假) = 1)
路径 = 路径 + #引号 + “ ”
.否则
路径 = 路径 + “ ”
.如果结束
局_文本 = 子文本替换 (局_文本, 路径, “”, , 1, 真)
命令行数组 = 分割文本 (局_文本, “ ”, )

[/e]

补充内容 (2014-5-8 12:35):
该代码与模块3.71中的代码的运行效果的对比见10楼

评分

参与人数 1好评 +1 精币 +5 收起 理由
Cand + 1 + 5 感谢分享,很给力!~

查看全部评分

结帖率:100% (2/2)
 楼主| 发表于 2014-5-8 12:34:33 | 显示全部楼层   山西省长治市
本帖最后由 鲁凯啸 于 2014-5-8 12:45 编辑

效果对比:
搜狗截图14年05月08日1232_1.jpg
@冰点




效果对比:
命令行:【-exe="C:\Users Temp\exe.exe" -txt="0.txt"】
易库命令取得:* 数组:4{“-exe=”,“C:\Users Temp\exe.exe”,“-txt=”,“0.txt”}
模块命令取得:* 数组:1{“-txt="0.txt"”}
啸锐命令取得:* 数组:3{“-exe="C:\Users”,“Temp\exe.exe"”,“-txt="0.txt"”}

实际要达到的效果:* 数组:2【-exe="C:\Users Temp\exe.exe"】【-txt="0.txt"】


回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2014-5-8 12:20:05 | 显示全部楼层   山西省长治市
阿振哥 发表于 2014-5-7 23:24
坐等更新。。。。。。。

有什么可更新的么?
回复 支持 反对

使用道具 举报

发表于 2014-5-7 23:24:35 | 显示全部楼层   广东省东莞市
坐等更新。。。。。。。
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2014-4-16 02:25:04 | 显示全部楼层   江苏省常州市
好好学习啊 。。多看看来
回复 支持 反对

使用道具 举报

发表于 2014-4-14 10:17:19 | 显示全部楼层   重庆市重庆市
鲁凯啸 发表于 2014-4-14 08:28
你看到的是哪个版本?3.71的版本刚刚纠正了这个bug但是源码和模块还未发布,所以我也不知道是怎么纠正的 ...

我看到的不是版本,而是有人做过同样的,只是不记得了,毕竟我是菜鸟,想帮也帮不上
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2014-4-14 08:28:42 高大上手机用户 | 显示全部楼层   山西省临汾市
千年以后 发表于 2014-4-14 07:04
我看到的好像和这个不一样,不过我刚来这儿

你看到的是哪个版本?3.71的版本刚刚纠正了这个bug但是源码和模块还未发布,所以我也不知道是怎么纠正的。

点评

我看到的不是版本,而是有人做过同样的,只是不记得了,毕竟我是菜鸟,想帮也帮不上   重庆市重庆市  详情 回复 发表于 2014-4-14 10:17
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
 楼主| 发表于 2014-4-14 08:26:07 高大上手机用户 | 显示全部楼层   山西省临汾市
492634926 发表于 2014-4-14 06:37
短路径不需要这么麻烦去判断。楼主多虑了。

是吗?我不是很清楚,那不需要区分么?
我倒是记得有个命令能直接转换成短路径,但是我总感觉会有出错的可能性啊,就像我不清楚这个取命令行和取执行目录为什么是两个地方一样
回复 支持 反对

使用道具 举报

发表于 2014-4-14 07:04:51 | 显示全部楼层   重庆市重庆市
我看到的好像和这个不一样,不过我刚来这儿
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
发表于 2014-4-14 06:37:43 | 显示全部楼层   广东省广州市
短路径不需要这么麻烦去判断。楼主多虑了。
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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