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

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

 火... [复制链接]
发表于 2010-11-15 02:21:18 | 显示全部楼层
看的一头雾水
发表于 2010-11-15 06:25:50 | 显示全部楼层
官方给的不也一样吗?也很小,忘记多大了,只记得20m以下
binghc 发表于 2010-11-15 01:15



    那你就下个汉化完整版试试
发表于 2010-11-15 08:43:30 | 显示全部楼层
不过通过帮助中得知:
@CR       回车符, Chr(13); 有时作为换行符使用.
@LF        换行符, Chr(10); 通常用于换行符.
@CRLF    等于 @CR & @LF  ;偶尔用于换行符.

多少还是有点区别,不过偶测试来看也没有出现你所说的:14行,偶也做了个录像,你看下:


偶用的版本是最新版本!

本帖子中包含更多资源

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

×
发表于 2010-11-15 09:12:47 | 显示全部楼层
嘿嘿,你想做小说采集啊!
 楼主| 发表于 2010-11-15 09:39:51 | 显示全部楼层
回复 27# afan


    我这里测试怎么没有黑块,需要在哪里设置吗?


本帖子中包含更多资源

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

×
 楼主| 发表于 2010-11-15 10:13:24 | 显示全部楼层
本帖最后由 binghc 于 2010-11-15 10:26 编辑

现在版本已换到汉化最新版(版主所谓的汉化完整版)





经过测试,本人现在已经能回答26#的问题了(前面每两行之间都有一空行,最后两行却没有)



这些行是用:(?m)^.*
提取的,从图片可以看出这样提取出来的行本身就有问题,后面不知道是多了@CR@LF还是@CRLF(估计不会是它,不然txt中直接就能看出)

而提取的最后一行后面没有这三个符号中的任何一个,所以msgbox的时候就会出现前面每隔一行有一空行出现,而最后两行之间却没有空行

看来还是@CR@LF@CRLF这个三个看不见摸不着的字符在作怪,想要他们现身,只有通过非常手段了

所以既然已经找到问题出在哪里,我也在这里提供解决办法:就是Afan说的
    实际应用中你不会将 '(?m)^.*' 改为 '\V+' 吗?

不过想要提取真正的数据,还需要再修改一下:
游客,如果您要查看本帖隐藏内容请回复

这样就没问题了,有兴趣的朋友可以试试,不过要在代码中测试才能看见真正的结果

本帖子中包含更多资源

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

×
 楼主| 发表于 2010-11-15 11:10:58 | 显示全部楼层
本帖最后由 binghc 于 2010-11-15 11:14 编辑

现在还有一个问题没解决:

测试文件还是39#代码生成的result.txt



现在版本是换到了最新的汉化3.3.6.1
之前说的_FileCountLines读取文件行数错误的问题也解决了,表面上看是解决了:和肉眼能看到的行数一样,但是真的解决了吗?
请看:
现在_FileCountLines这个函数配合FileReadLine命令使用的


#include<file.au3>
$file='result.txt'
$count=_FileCountLines($file)
MsgBox(0,'','总行数:'&$count)
For $i=0 To $count-1
        MsgBox(0,'','第'&$i+1&'行数据:'&@LF&'ssss'&FileReadLine($file,$i)&'fffff')
Next

这是返回结果:




这到底是_FileCountLines有问题还是FileReadLine有问题!!

本帖子中包含更多资源

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

×
发表于 2010-11-15 11:32:49 | 显示全部楼层
呵呵,这是我测试的结果,是用26#的代码



嘿嘿!!!!

本帖子中包含更多资源

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

×
发表于 2010-11-15 11:42:19 | 显示全部楼层
很好,很强大,大家都很深入哦。。。
 楼主| 发表于 2010-11-15 11:51:10 | 显示全部楼层
回复 53# lchl0588


    那现在就用39#生成的result文件作为测试文件试试看,现在要让这个result文件中出现什么都没有的空行,和只有空格组成的空行
发表于 2010-11-15 11:54:10 | 显示全部楼层
不稳定很正常,曾经不止一个网友提过label切换时偶尔会闪屏,这些小BUG应该会慢慢解决的。求稳定还是用编程语言吧
 楼主| 发表于 2010-11-15 12:37:26 | 显示全部楼层
本帖最后由 binghc 于 2010-11-15 12:39 编辑


好,那我现在再来分析一下52#说的怪事!

52#的测试文件result是由39#的代码生成的,现在来看看39#代码是怎么生成这个文件的,

39#代码本意是用正则提取a.txt和b.txt中的每行数据(注意:是每行,包括空白行),51#

分析过了,用(?m)^.*提取是有问题的,而39#楼的代码就是这么倒霉,刚好用的就是(?m)^.*

来提取数据。现在清楚了,问题的核心还是出在这个表达式上,因为这个表达式导致了一连串的

怪事发生!

既然现在找到问题所在了,那我们就按照51#给出的解决办法,改掉39#代码中的表达式。

修改运行后,肉眼看到的,生成的这个result文件和之前的一模一样,但实际上不一样:

现在来验证一下:
#include<file.au3>
$file='result.txt'
$count=_FileCountLines($file)
MsgBox(0,'','总行数:'&$count)
For $i=1 To $count
        MsgBox(0,'','第'&$i&'行数据:'&@LF&'ssss'&FileReadLine($file,$i)&'fffff')
Next


结果一切正常!!
发表于 2010-11-15 12:49:48 | 显示全部楼层
回复 57# binghc
这是偶测试结果:





这是偶测试的所有文件

答案就在这里面,其实原因这帖里有人答过了,可能你没注意到一个地方!!!

本帖子中包含更多资源

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

×
发表于 2010-11-15 13:14:48 | 显示全部楼层
回复 38# binghc


    谢谢
发表于 2010-11-15 13:43:18 | 显示全部楼层
回复  afan


    我这里测试怎么没有黑块,需要在哪里设置吗?
binghc 发表于 2010-11-15 09:39



    需使用默认字体,在@CR或@LF单独出现时(前后没有@LF或@CRLF),会以小黑块显示。
在Edit显示输出时,由于重新编辑过(后面加了@CRLF),因此不会显示小黑块,此时需使用列表显示输出,其会对任意的@CR、@LF、@CRLF以小黑块显示。请仔细阅读我发布的工具原帖。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-16 02:28 , Processed in 0.153702 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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