Msgbox显示文本的奇怪问题.
本帖最后由 easefull 于 2011-5-15 08:14 编辑-----------------------------------------------------------------------------------------------
2011-04-29 提问:
有两个文件,用fileread读取全部内容保存到变量.
使用stringlen能正确显示这个变量包含的字符数量,
但是,试图使用msgbox把变量内容显示出来,却只显示了第一行的文字.
使用代码如下Local $sText = FileRead("SNT.txt")
MsgBox(0, StringLen($sText), $sText)文件:
另外,如果去掉或修改第一行后面的几个奇怪字符
则整个文本都可以正常显示.
请问这个是怎么原因?
-----------------------------------------------------------------------------------------------
2011-05-01
之前出现的情况,原因不在于那个删除和修改那个字符,而在于保存
记事本保存了以后把原来的编码00(Null)写成了20(空格).
而au3在处理中间有Null字符的字符串时似乎会直接返回.
但似乎又有点不对.如以下代码:Local $sText = FileRead("SNT.txt")
MsgBox(0, "1", StringLen($sText) &@CRLF& "'" & $sText & "'")
MsgBox(0, "2", StringLen($sText) &@CRLF& "'" & $sText & "'")
1.如果是错误,为什么还会运行第2次msgbox
2.如果仅仅是遇到Null返回字符串结束,那么为什么StringLen($sText)能返回正确的字符数量?
还请高手解惑
-----------------------------------------------------------------------------------------------
2011-05-15 精减问题(不需再下载文件)
Local $sText = "Hello " & Chr(0x00) & " World!"
MsgBox(0, "", "字符数量: " & StringLen($sText) &@CRLF&@CRLF& "字符串显示: " &@CRLF& $sText) 估计是 字符乱码,无法显示,错误返回 本帖最后由 love5173 于 2011-4-29 23:12 编辑
回复 1# easefull
我在正则减肥里面已经回答是什么原因了,你去看看吧 那几个字符应该是控制后面的空白符的16进制样式的,我试验了一下,去除后后面的空白显示都是20,如果不去除就是00,这部分我也不是很懂 回复 4# love5173
得益于您的提醒,折腾了两天我终于也把那个文件的处理方式也弄出来了^_^
http://www.autoitx.com/forum.php?mod=redirect&goto=findpost&ptid=24220&pid=296537&fromuid=7652895 本帖最后由 easefull 于 2011-5-15 08:14 编辑
之前出现的情况,原因不在于那个删除和修改那个字符,而在于保存
记事本保存了以后把原来的编码00(Null)写成了20(空格).
而au3在处理中间有Null字符的字符串时似乎会直接返回.
但似乎又有点不对.如以下代码:Local $sText = FileRead("SNT.txt")
MsgBox(0, "1", StringLen($sText) &@CRLF& "'" & $sText & "'")
MsgBox(0, "2", StringLen($sText) &@CRLF& "'" & $sText & "'")
1.如果是错误,为什么还会运行第2次msgbox
2.如果仅仅是遇到Null返回字符串结束,那么为什么StringLen($sText)能返回正确的字符数量?
还请高手解惑 帮顶,我以前写INI的时候,也出现过乱码,一直没解决,就放弃了写入文本的方案 可能是你系统的字体编码问题 {:face (361):}看我的 测试未发现问题啊 太复杂了,... 看我的
wtping 发表于 2011-5-7 23:11 http://www.autoitx.com/images/common/back.gif
看你再改文件.再FPE{:face (114):} 回复 10# yinbinly
不是脚本不能执行.
而是读了近百k的文件.msgbox只显示了一行文本. 看一下,对以后有帮助 这个老早就有人讨论过了
http://www.autoitscript.com/forum/topic/46119-chr0-now-returns-0x00/
你看看就明白 了
页:
[1]
2