找回密码
 加入
搜索
楼主: binghc

[AU3基础] [已解决]对回车符@CR换行符@LF还有@CRLF的疑问(好奇怪,我要疯掉了)

 火... [复制链接]
发表于 2010-11-14 23:06:34 | 显示全部楼层
看看这个录像:对这个代码生成的result文本进行复制,再到其地方粘贴,就会发现,这个代码用@CRLF生成的文件 ...
binghc 发表于 2010-11-14 22:59



    不用折腾了,你自己表达式的问题,见我27#的回复。
 楼主| 发表于 2010-11-14 23:08:34 | 显示全部楼层
本帖最后由 binghc 于 2010-11-14 23:19 编辑

现在我把26#中的@CRLF换成@LF(所有的都换)



看看那个result文件

这是换成CR的:

本帖子中包含更多资源

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

×
发表于 2010-11-14 23:26:34 | 显示全部楼层
LZ进死胡同了,27#白写了…
 楼主| 发表于 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文件就会有黑点出现
发表于 2010-11-14 23:39:15 | 显示全部楼层
回复 34# binghc


    实际应用中你不会将 '(?m)^.*' 改为 '\V+' 吗?

而且我这测试_FileCountLines也没出现负数…
发表于 2010-11-14 23:45:34 | 显示全部楼层
对,而且期待你的问题。。。因为我也想知道。。。
ys168不支持外链
kn007 发表于 2010-11-14 21:21



    我这里等了好久都是 0KB/s下载了一个php文件
 楼主| 发表于 2010-11-14 23:46:07 | 显示全部楼层
本帖最后由 binghc 于 2010-11-14 23:47 编辑

回复 35# afan


    难道又是版本问题?额。。。我现在用的是3.2.13.7.1

我没有用正则计算他的实际行数,之前也看到了,fileread读取result的结果

那如果result里面本身就有空行呢



本帖子中包含更多资源

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

×
 楼主| 发表于 2010-11-14 23:49:05 | 显示全部楼层
回复 36# haodd


    那就百度好了,这种东西网上一大把(关键字:屏幕录像专家破解版)
 楼主| 发表于 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中就会有黑点产生,这本身就有问题,不管用正则提取后的结果正确与否

本帖子中包含更多资源

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

×
发表于 2010-11-15 00:52:36 | 显示全部楼层
回复 39# binghc


    你的Au3版本问题,太老了…
我这测试脚本是和工具显示一样的,22条结果(理所当然的,正则引擎一样)。

至于复制粘贴显示不同,其实内容是一样的,只是 Edit 控件和 Static 控件显示方式不同。
 楼主| 发表于 2010-11-15 00:57:33 | 显示全部楼层
回复 40# afan


   之前用的3.3.2.0有问题,换了3.3.6.1还是同样的问题(14组元素那个)

那我该用哪个版本?
发表于 2010-11-15 01:00:27 | 显示全部楼层
我用的是3.3.6.1,你提出的这些问题都没有…
 楼主| 发表于 2010-11-15 01:03:51 | 显示全部楼层
回复 42# afan


    AutoIt(AU3) V3.3.6.1绿色汉化特别版.ZIP        6.68M
发表于 2010-11-15 01:06:06 | 显示全部楼层
6.68M? 阉割了什么东东?
http://www.autoitx.com/thread-12964-1-1.html
 楼主| 发表于 2010-11-15 01:15:53 | 显示全部楼层
本帖最后由 binghc 于 2010-11-15 09:17 编辑

官方给的不也一样吗?也很小,忘记多大了,只记得20m以下(实际上好像10M都不到)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 13:01 , Processed in 0.071260 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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