找回密码
 加入
搜索
查看: 4041|回复: 7

[AU3基础] 关于FileReadLine文件读取速度递减的问题 求解决办法【已解决】

  [复制链接]
发表于 2015-7-3 13:35:19 | 显示全部楼层 |阅读模式
本帖最后由 大叔 于 2015-7-5 15:20 编辑

$a=0
While 1
  $a+=1
   FileReadLine("1.txt", $a)
  If @error Then ExitLoop
WEnd

只是个例子  按行读取数据  我的数据大概有10万多行  结果处理了很久都没好,后来我加了TrayTip
让他每分钟报一次条数发现 衰减很大

8000     

13200

17100

20300

23000

25600

27800

29900

第一分钟能读取8000多行。  2分钟5000多行。  到第八分钟的时候已经只能每分钟读取1000多条了。再往后衰减到一分钟只能读取几百条    我这数据读了一个多小时都没读完,我想问问高手。 我用FileReadLine 读取第9万条数据  是不是他需要把前面8999行数据都读过之后才能获取?  除了拆分文件还有没有别的办法可以更快的读取数据
发表于 2015-7-3 14:07:01 | 显示全部楼层
从性能的角度来看, 一行行读取是一个坏主意, 此时"行号"参数是由一逐行递增.
这将迫使 AutoIt 从开始重读该文件, 直至达到指定的行.
 楼主| 发表于 2015-7-3 15:47:54 | 显示全部楼层
本帖最后由 大叔 于 2015-7-3 15:51 编辑
从性能的角度来看, 一行行读取是一个坏主意, 此时"行号"参数是由一逐行递增.
这将迫使 AutoIt 从开始重读该 ...
131738 发表于 2015-7-3 14:07



    请问 请问对这样大量数据的读取有什么好办法么。 求指教   我仓建了内存盘。 尝试把数据放在内存盘里读取希望他能增加点速度  结果区别不大。 后期依旧衰减的很厉害~
发表于 2015-7-3 17:51:08 | 显示全部楼层
若没有指定行号, 则将自动读取"下一行".
如果打开的文件较大, 读取会比使用文件句柄要慢得多.

没读过你那大的文件, 只是帮助文档如是说!
试试不使用行号参数......
发表于 2015-7-3 20:55:50 | 显示全部楼层
"1.txt" 该参数要使用打开的句柄,而不要使用文件路径
发表于 2015-7-3 22:21:55 | 显示全部楼层
FileReadLine示例/演示
;要打开的文件
Local $file = FileOpen("1.txt", 0)

; 检查打开的文件是否可读
If $file = -1 Then
    MsgBox(4096, "错误", "不能打开文件.")
    Exit
EndIf

; 每次读取一行文本,直到文件结束.
While 1
    Local $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(4096, "读取的行:", $line)
WEnd

FileClose($file)
 楼主| 发表于 2015-7-5 15:19:10 | 显示全部楼层
若没有指定行号, 则将自动读取"下一行".
如果打开的文件较大, 读取会比使用文件句柄要慢得多.

没读过你 ...
131738 发表于 2015-7-3 17:51



    万分感谢  131738 元老。   不指定行号  果断好使。  10万多条数据 处理不到两分钟   

    同时也感谢其它几位热心朋友  爱死你们了
发表于 2015-7-7 08:33:13 | 显示全部楼层
找高手,用正则更是飞快吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-27 12:35 , Processed in 0.080799 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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