afan
发表于 2010-11-14 23:06:34
看看这个录像:对这个代码生成的result文本进行复制,再到其地方粘贴,就会发现,这个代码用@CRLF生成的文件 ...
binghc 发表于 2010-11-14 22:59 http://www.autoitx.com/images/common/back.gif
不用折腾了,你自己表达式的问题,见我27#的回复。
binghc
发表于 2010-11-14 23:08:34
本帖最后由 binghc 于 2010-11-14 23:19 编辑
现在我把26#中的@CRLF换成@LF(所有的都换)
看看那个result文件
这是换成CR的:
afan
发表于 2010-11-14 23:26:34
LZ进死胡同了,27#白写了…
binghc
发表于 2010-11-14 23:32:52
本帖最后由 binghc 于 2010-11-14 23:37 编辑
回复 31# afan
什么msgbox这些都无所谓,问题是我要用代码生成的这个result文件用FileReadLine读取数据,看上面的图片,_FileCountLines读取result文件都成负数了。
在这之前,是我在实际应用中碰到的,单打开生成的文件看没问题,和普通文本一样,用_FileCountLines读取总行数也还正常,但是用FileReadLine就有问题了:
_FileCountLines计算总行数为98(正常,实际文本确实是98行),FileReadLine第二行为空,从上面图片上看,可以理解。但是却可以读取超过98的行(理论上
至少可以读取到98*2行)这不是问题吗。现在会通过_FileCountLines计算总行数作为循环的终点。
要想fileread等函数能正常处理,也许把代码中的@CRLF换成@LF、@CR能解决,但是这个result文件就会有黑点出现
afan
发表于 2010-11-14 23:39:15
回复 34# binghc
实际应用中你不会将 '(?m)^.*' 改为 '\V+' 吗?
而且我这测试_FileCountLines也没出现负数…
haodd
发表于 2010-11-14 23:45:34
对,而且期待你的问题。。。因为我也想知道。。。
ys168不支持外链
kn007 发表于 2010-11-14 21:21 http://www.autoitx.com/images/common/back.gif
我这里等了好久都是 0KB/s下载了一个php文件{:face (319):}
binghc
发表于 2010-11-14 23:46:07
本帖最后由 binghc 于 2010-11-14 23:47 编辑
回复 35# afan
难道又是版本问题?额。。。我现在用的是3.2.13.7.1
我没有用正则计算他的实际行数,之前也看到了,fileread读取result的结果
那如果result里面本身就有空行呢
binghc
发表于 2010-11-14 23:49:05
回复 36# haodd
那就百度好了,这种东西网上一大把(关键字:屏幕录像专家破解版)
binghc
发表于 2010-11-15 00:29:09
本帖最后由 binghc 于 2010-11-15 11:49 编辑
本人疑问多多,不知道是我正则有问题还是au3本身的问题
a.txt和b.txt还是一楼的内容,用下面的代码生成的result.txt作为测试文件
$fileA = 'a.txt'
$fileB = 'b.txt'
$StrA = FileRead($fileA)
$StrB = FileRead($fileB)
$StrA = StringRegExp($StrA, '(?m)^.*', 3)
$StrB = StringRegExp($StrB, '(?m)^.*', 3)
If UBound($StrA) <> UBound($StrB) Then
MsgBox(0, '', $fileA & ':' & UBound($StrA) & ' 不等于 ' & $fileB & ':' & UBound($StrB))
Exit
EndIf
Dim $STR3
For $i = 0 To UBound($StrA) - 1
$STR3 &= $StrA[$i] & @CRLF & $StrB[$i] & @CRLF
If $i = 3 Then $STR3 &= @CRLF & ' ' & @CRLF
Next
$resultfile = 'result.txt'
If FileExists($resultfile) Then FileDelete($resultfile)
FileWrite($resultfile, $STR3)
$str = FileRead($resultfile)
ShellExecute($resultfile)
MsgBox(0, '结果', $str)
测试代码
$s=FileRead('result.txt')
$s=StringRegExp($s,'(?m)^\V*',3)
MsgBox(0,'',UBound($s))
For $i=0 to UBound($s)-1
MsgBox(0,'','sdf'&$s[$i]&'sdf')
Next
用这个代码测试上面生成的result.txt结果只有九条结果(可能又是版本的问题,我这里用的是3.2.13.7.1)
而用Afan的正则工具都显示出来了(Afan正则工具里的测试文本是我从这个result.txt中直接复制过去的,
从Au3。reghelper里的文本可以看出复制过去后每行文本之间没有多余的空行,而如果复制到SciTE编辑器
中每行就会有多出一空行,个人认为这里代码测试的文本和Au3.helper里测试的文本就是不一样的,虽然我什么都
没做,只是复制粘贴。肉眼能看到的本身就不一样,代码中测试的文本,肉眼没办法看到,用msgbox输出,结果
和SciTE一样,中间会多出一空行)
现在我真正想做的就是,我肉眼看到result的内容是什么样的,用正则提取出来后就是怎么样的,也就是说所有
的空行都要提取出来。所以我还是觉得这个result.txt本身就有问题,大家又是怎么看呢?
所有问题的最后还是回到了三个符号上@CRLF、@CR、@LF。现在已经知道如果用@CR或则@LF作为换行符,
result中就会有黑点产生,这本身就有问题,不管用正则提取后的结果正确与否
afan
发表于 2010-11-15 00:52:36
回复 39# binghc
你的Au3版本问题,太老了…
我这测试脚本是和工具显示一样的,22条结果(理所当然的,正则引擎一样)。
至于复制粘贴显示不同,其实内容是一样的,只是 Edit 控件和 Static 控件显示方式不同。
binghc
发表于 2010-11-15 00:57:33
回复 40# afan
之前用的3.3.2.0有问题,换了3.3.6.1还是同样的问题(14组元素那个)
那我该用哪个版本?
afan
发表于 2010-11-15 01:00:27
我用的是3.3.6.1,你提出的这些问题都没有…
binghc
发表于 2010-11-15 01:03:51
回复 42# afan
AutoIt(AU3) V3.3.6.1绿色汉化特别版.ZIP 6.68M
afan
发表于 2010-11-15 01:06:06
6.68M? 阉割了什么东东?
http://www.autoitx.com/thread-12964-1-1.html
binghc
发表于 2010-11-15 01:15:53
本帖最后由 binghc 于 2010-11-15 09:17 编辑
官方给的不也一样吗?也很小,忘记多大了,只记得20m以下(实际上好像10M都不到)