找回密码
 加入
搜索
查看: 5069|回复: 16

[AU3基础] 如何删除一半日志?[已解决]

  [复制链接]
发表于 2012-7-20 01:25:14 | 显示全部楼层 |阅读模式
本帖最后由 rst52013353 于 2012-7-26 23:18 编辑

文本大于50K就删除一半日志。正则不懂啊,哪位大大给个例子,或者过个传送门,搜索了半天没有。
发表于 2012-7-20 02:14:43 | 显示全部楼层
对于日志,不要用笼统的说删除一半。合理的处理应该是保留最近的多少行。
如果日志内容有几行为一段的更不能乱删。
详细说明自己的问题并附上范本以及自己的代码才是基本的提问之道。
发表于 2012-7-20 09:48:51 | 显示全部楼层
我自己之前的做法是做判断,如果日志大于50K就把原来的日志重命名标志序号备份一下。不知道是否可行。
 楼主| 发表于 2012-7-20 10:47:54 | 显示全部楼层
呵呵,谢谢afan,你说的有道理。我说的日志就是一些数字,那有没有什么办法在文本大于50K 以后删除,部分以前的呢?

[inbjl]
hijy=0004D004D0010404D006A004115A11400510144007A004D003D003D01661000410030007A
sih=0004D004D0010704D006A004D15A114005109440032004E0034003101661000410030007A
hji=0004D004D0010704D006A004D15A114005109440032004E0034003101661000410030007A
sih=0004D004D0010604D007A004115A114005109440030004D0034003101661000410030007A
hijy=03D004E00411496411500411490077004D007A00410
bib=0004D004D0010604D007A004115A114005109440030004D0034003101661000410030007A
jck=03D004D00611496A11500511450078004E005400550
 楼主| 发表于 2012-7-20 10:57:03 | 显示全部楼层
谢谢jingygr,由于只能使用一个名字,重命名不太可行。
发表于 2012-7-20 10:58:24 | 显示全部楼层
呵呵,谢谢afan,你说的有道理。我说的日志就是一些数字,那有没有什么办法在文本大于50K 以后删除,部分以 ...
rst52013353 发表于 2012-7-20 10:47



    看你这个范本貌似是ini文件的格式,是只有[inbjl]这一个字段,还是有其它的字段?如果有其它的字段那是否需要保留其它字段,而仅删减[inbjl]这一个字段?
 楼主| 发表于 2012-7-20 11:10:56 | 显示全部楼层
是的,只有[inbjl]一个字段,是ini文件的格式,但文件没有扩展名,如何在大于50K只保留最近100行呢?
 楼主| 发表于 2012-7-20 11:12:15 | 显示全部楼层
半路出家当和尚,真是难啊,呵呵
发表于 2012-7-20 11:51:48 | 显示全部楼层
Local $File = @ScriptDir & '\test.txt'                ;指定测试文件
Local $File_bak = @ScriptDir & '\test_bak.txt'        ;指定备份文件(可选)
If FileGetSize($File) / 1024 < 50 Then Exit -1        ;小于50K不操作
Local $str = FileRead($File)
FileDelete($File_bak)
FileMove($File, $File_bak)
Local $sNew = StringRegExpReplace($str, '^\s*(\[.+?\])(?s).*((?:\r\n\V+){100})\v*$', '$1$2')
FileWrite($File, $sNew)
ShellExecute($File)

评分

参与人数 1金钱 +10 收起 理由
zldfsz + 10

查看全部评分

 楼主| 发表于 2012-7-20 15:03:31 | 显示全部楼层
afan谢谢了,好象不行,test.txt文件没有删除。。。。。。。。
发表于 2012-7-20 15:52:59 | 显示全部楼层
本帖最后由 afan 于 2012-7-20 15:55 编辑

回复 10# rst52013353


    除非你的文件并非示例所示,不是以[字段名]开始。
可以上传你的范本测试下,我都是测试成功后才发贴的。
 楼主| 发表于 2012-7-20 18:21:39 | 显示全部楼层
确实是不行,我试好多次了,不知道是哪里的问题。呵呵
[inbjl]
2356=0004D004D0010504E0054004515A114005101440031004E003D003D01661000410079007A
?3452=0004D004D0010604E0054005115A114005109440035004D0034003101661000410079007A
?1257=00055005300105063006D0051157114004E08330075005A0068006C01651000640076006C
?4556=0004D004D0010604E0054005115A114005109440035004D0034003101661000410079007A
?3545=00780062004800630075005A00580068006C00610011651158114004E
 楼主| 发表于 2012-7-20 18:27:42 | 显示全部楼层
你的头像好酷啊
发表于 2012-7-20 18:56:26 | 显示全部楼层
本帖最后由 afan 于 2012-7-20 18:59 编辑
确实是不行,我试好多次了,不知道是哪里的问题。呵呵

2356=0004D004D0010504E0054004515A1140051014400 ...
rst52013353 发表于 2012-7-20 18:21



    你这总共才5行,也远小于50K,第三行就判断完成退出了。何来大于50K只保留最近100行?
反过来由我给你范本?

本帖子中包含更多资源

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

×
 楼主| 发表于 2012-7-20 19:21:35 | 显示全部楼层
呵呵,怪我笨啊。是可以的,我把翻译好的文件放错地方了。谢谢你了afan!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 05:30 , Processed in 0.118282 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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