找回密码
 加入
搜索
查看: 7325|回复: 18

[AU3基础] 关于 3mile 资深元老的AU3源码中文字符转二进制的反馈问题,谢谢!(已解决)

 火.. [复制链接]
发表于 2012-6-3 13:45:37 | 显示全部楼层 |阅读模式
本帖最后由 txm 于 2012-6-14 09:05 编辑

执行以下代码,读取包含中文字符串的AU3文件.
另存为新文件后,代码迷惑,编译.

只对简单的中文字符串处理,请大家多提供点不同形态的字符串.


$file = FileOpenDialog("GBK2Bin", @ScriptDir, "Au3 File(*.au3)")
If @error Then Exit
$SoureCode = FileRead($file)
$NeedChange = StringRegExp($SoureCode, '["' & "'].*?[\x{4e00}-\x{9fa5}]+.*?[" & '"' & "']", 3)
For $i = 0 To UBound($NeedChange) - 1
        $Bin = StringToBinary(StringRegExpReplace($NeedChange[$i], '^["' & "'](.*?[\x{4e00}-\x{9fa5}]+.*?)[" & '"' & "']$", "$1"))
        $SoureCode = StringReplace($SoureCode, $NeedChange[$i], "BinaryToString('" & $Bin & "')", 1, 1)
Next

Local $var = FileSaveDialog("另存为.", @ScriptDir, "AU3脚本 (*.au3)", 2)
If Not @error Then
        If Not StringRegExp($var, '.+\.au3$', 0) Then $var = $var & ".au3"
        $fileopen = FileOpen($var, 2)
        FileWrite($fileopen, $SoureCode)
EndIf


_GUICtrlEdit_AppendText($Edit9, @YEAR & "-" & @MON & "-" & @MDAY & $tecs & " " & "测试文本" & @CRLF)
转换后:
_GUICtrlEdit_AppendText($Edit9, @YEAR & BinaryToString('0x2D22202620404D4F4E202620222D22202620404D444159202620247465637320262022202220262022B2E2CAD4CEC4B1BE') & @CRLF)

一些宏也被转换了,真正要转换的就只有“测试文本”几个字就可以了,还望修正,谢谢!

评分

参与人数 1金钱 +20 收起 理由
3mile + 20 多谢反馈

查看全部评分

发表于 2012-6-4 14:17:44 | 显示全部楼层
牛人们,进来帮看看啊,昨晚我等到零晨3点没见人回应我才睡,呵呵
发表于 2012-6-5 09:49:35 | 显示全部楼层
 楼主| 发表于 2012-6-6 07:42:48 | 显示全部楼层
回复 3# 3mile


    3mile大师,我真的恨我自己没有用,呵呵,竟然提示这个
 楼主| 发表于 2012-6-6 07:43:17 | 显示全部楼层
回复 3# 3mile


    3mile大师,我真的恨我自己没有用,呵呵,竟然提示这个

您无权进行当前操作,原因如下:

对不起,本帖要求阅读权限高于 20 才可浏览,请返回。

查看您当前用户组的权限
发表于 2012-6-6 08:23:12 | 显示全部楼层
回复  3mile


    3mile大师,我真的恨我自己没有用,呵呵,竟然提示这个

您无权进行当前操作,原因 ...
txm 发表于 2012-6-6 07:43



    用你的真身上,干嘛用马甲。

评分

参与人数 1金钱 +10 收起 理由
txm + 10 呵呵,感谢支持

查看全部评分

发表于 2012-6-6 09:01:01 | 显示全部楼层
回复 6# txm
第4行改为:$NeedChange = StringRegExp($SoureCode, '["' & "'](?(?=[^"&'"'&"']*[\x{4e00}-\x{9fa5}]+).*?)["&'"'&"']", 3)

评分

参与人数 1金钱 +20 收起 理由
txm + 20 谢谢您

查看全部评分

发表于 2012-6-6 09:03:21 | 显示全部楼层
马甲吗?快快现出真身来.
亲,现出真身包邮哦!

评分

参与人数 1金钱 +6 收起 理由
user3000 + 6 嘻嘻!

查看全部评分

 楼主| 发表于 2012-6-6 09:26:43 | 显示全部楼层
回复 7# afan


    晕死了,凡版,你还不了解我,我从注册之日到现在,一直登着这号,我没有马甲的哈,一般遇到问题我大多在搜索,如果搜索不能解决问题或搜索不到答案,我才发问题贴,感谢您们,哈哈,也感谢论坛和党

评分

参与人数 1金钱 -1 收起 理由
user3000 -1 请不要把论坛与那个‘D’并列好吗?

查看全部评分

 楼主| 发表于 2012-6-6 09:28:06 | 显示全部楼层
回复 8# 3mile


    感谢大师,您代码精练得让人敬佩,效率一流,用起舒服,哈哈哈,
发表于 2012-6-6 09:46:22 | 显示全部楼层
的确是好东西,收藏了
 楼主| 发表于 2012-6-6 09:47:59 | 显示全部楼层
回复 8# 3mile


    大师,您好,刚测试了下,对于如下代码,转换仍然有问题,谢谢!
$String = '"OpenEXE" /SX' & $ST1 & $ST2
转换后
$String = BinaryToString('0x2722')OpenEXE" /SX' & $ST1 & $ST2

本来该条字符串是不需要转换的,不涉及到中文,但也被转换了。
发表于 2012-6-6 12:17:03 | 显示全部楼层
又学一招,谢谢提供
发表于 2012-6-6 12:23:17 | 显示全部楼层
回复  afan


    晕死了,凡版,你还不了解我,我从注册之日到现在,一直登着这号,我没有马甲的哈,一 ...
txm 发表于 2012-6-6 09:26



    那就见鬼了, txm888  是?
发表于 2012-6-6 12:52:39 | 显示全部楼层
啊?我的天,我的记性,我一直都用的txm888,没想到txm也注册过,这是我的失误,凡版不提醒我还真的糊涂了,哈哈,恳请凡版将我"txm"这帐号废除,谢谢,可惜了这帐号的金钱,竟然有千多,,由此造成的误会我深感抱歉!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 09:19 , Processed in 0.119910 second(s), 31 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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