本帖最后由 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)
|