找回密码
 加入
搜索
查看: 3337|回复: 6

[AU3基础] 【已解决】读取数据流小心NULL无效字符

 火.. [复制链接]
发表于 2011-9-6 10:10:43 | 显示全部楼层 |阅读模式
本帖最后由 elexy 于 2011-9-6 17:59 编辑

请大家帮忙看一小段代码,不知道是AU3的bug还是我程序有问题

vista\win7   3.3.6.1 运行

Global $sText,$iPID
$iPID = Run(@ComSpec & ' /c bcdedit /create /d "abc" /application bootsector', @SystemDir, @SW_HIDE,6)
While 1
   $sText &= StdoutRead($iPID)
        If @error Then ExitLoop
        WEnd
MsgBox(64,"abc", "前面" & $sText & "后面")

运行后,msgbox显示的只有 变量以及变量以前的内容,("前面" & $sText)     变量以后的内容 "后面"  不显示了
发表于 2011-9-6 12:49:36 | 显示全部楼层
没有明白神马意思!
 楼主| 发表于 2011-9-6 14:04:36 | 显示全部楼层
意思就是运行后,msgbox显示的只有 变量以及变量以前的内容,("可见" & $bcdid )变量以后的内容"无法识别" 不显示了
发表于 2011-9-6 14:10:36 | 显示全部楼层
很大一部分可能就是正则表达式不匹配。
建议使用以下这种形式,首先保证你使用的正则是能匹配到东西的:
If StringRegExp($sText, "pattern1") Then
        $bcdid = StringRegExpReplace("string", "pattern2", "replace")
EndIf
发表于 2011-9-6 14:32:17 | 显示全部楼层
你先试下直接输出$sText有没有把。还百思不得其解。
 楼主| 发表于 2011-9-6 14:41:00 | 显示全部楼层
你先试下直接输出$sText有没有把。还百思不得其解。
drunk 发表于 2011-9-6 14:32


正则肯定是匹配到内容了,这个原因排除,现在去掉正则的代码,直接输出也是一样的
发表于 2011-9-6 15:51:26 | 显示全部楼层
回复 6# elexy
正则有输出?
 楼主| 发表于 2011-9-6 15:52:36 | 显示全部楼层
回复  elexy
正则有输出?
netegg 发表于 2011-9-6 15:51


正则确定有输出,为了排除正则的问题,已经将正则代码去掉,现在直接输出 $stext
发表于 2011-9-6 15:59:51 | 显示全部楼层
本帖最后由 netegg 于 2011-9-6 16:08 编辑

回复 8# elexy

把msgbox放到wend前面,&=改成=
另外,你的那个bcdedit在什么文件夹里,除非是系统文件,否则要跟全路径

再说句不太客气的话,别动不动就bug,论坛里没几个人(包括我自己)到发现bug的水平
发表于 2011-9-6 16:23:49 | 显示全部楼层
回复 1# elexy
试过了,可以显示啊!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2011-9-6 17:04:18 | 显示全部楼层
回复  elexy
试过了,可以显示啊!
xms77 发表于 2011-9-6 16:23


这样当然可以显示......  我说的是通过  StdoutRead  获取的数据
发表于 2011-9-6 17:07:51 | 显示全部楼层
StdoutRead获取的数据,最后一个字符是NULL字符,这个字符不可见,并且它之后的字符串会被截断。

输出结果时改成:MsgBox(64,"abc", "前面" & StringTrimRight($sText, 1) & "后面")
 楼主| 发表于 2011-9-6 17:58:08 | 显示全部楼层
StdoutRead获取的数据,最后一个字符是NULL字符,这个字符不可见,并且它之后的字符串会被截断。

输出结 ...
pusofalse 发表于 2011-9-6 17:07


终于解决了,超版才是正解!!!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 17:15 , Processed in 0.083994 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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