minterz 发表于 2011-8-6 03:57:51


3mile 发表于 2011-8-6 00:08 http://autoitx.com/images/common/back.gif

搜了下,有两个对应ini的函数
GetPrivateProfileSection
GetPrivateProfileSectionNames

能不能写个新函数,突破官方inireadSection和 InireadSectionNames 的32767 字符限制呢?

dyd 发表于 2011-8-6 08:23:14

不太明白原理

nhxiaobo 发表于 2011-8-6 09:56:58

学习学习学习学习

happytc 发表于 2011-8-6 10:17:19

回复 16# minterz

http://www.autoitx.com/forum.php?mod=viewthread&tid=12319&highlight=\_iniread

wa18239 发表于 2011-8-6 11:14:18

学习了。
函数名:_IniReadSection;======================================
; 说明: 从INI结构文件中读取某个字段中的所有关键字或值。
;比_FileReadToArray之类的读入数组的方法快N~N千倍…
;    原IniReadSection函数只有在字段中的前32767字符可以被正常返回,本函数无此限制(初衷在于此)。
;    原IniReadSection函数遇到某些文件特殊的回车及换行组合会停止继续而返回,本函数会完整读出。
;    其它与原IniReadSection函数不同:不返回无关键字的值;既无关键字又无值只有等号的也不被返回。
; 语法: _IniReadSection('ini文件路径', '字段名'[, '打开模式'])
; 返回值:成功: 返回一个二维数组,其中:元素=大小、元素=关键字、元素=对应的数值。
;    失败: 返回0。如INI文件读取错误或字段不存在将设置 @error=1;字段内容为空将设置 @error=2
;==============================================================

minterz 发表于 2011-8-6 12:04:00

回复minterz

\_iniread
happytc 发表于 2011-8-6 10:17 http://autoitx.com/images/common/back.gif


    这个没什么用,100w行数据的时候,连_iniread返回的都是错误的.
这个同样是正则匹配的,速度没有优势...

还没有_StringBetween方便呢...

官方的iniread机制已经出来了,就是调用win api

希望有高手用win api 写个突破限制的出来{:face (125):}

wei999 发表于 2011-8-7 16:01:11

高人啊都是

wei999 发表于 2011-8-7 16:01:55

官方地址谁发一下

wei999 发表于 2011-8-7 16:02:49

{:face (303):}10块

yjw83523 发表于 2011-8-7 23:47:17

{:face (356):}学习呀

jinyue115 发表于 2011-8-8 11:09:29

厉害! 还是只能佩服啊

love5173 发表于 2011-8-12 12:46:14

ini 毕竟不是txt,是有索引的,文件的信息排布方式并不是你肉眼看到的那样,实际上真正的文件读取方式是先读取索引,根据索引(能储存数据在字符串中的位置)直接跳转,也就是你不查找的直接跳过了!
举个例子,你搜索一本书的某个信息的时候,他会先读目录,根据目录直接跑到制定的页面,本身这个函数只知道前面有多少个单位的数据被跳过了,但是究竟跳过了什么他根本就没读!

xlcwxl 发表于 2011-8-14 14:23:23

非常不错,当然官方的速度快了
页: 1 [2]
查看完整版本: 为什么官方ini读取速度如此之快