HardCopy Posted October 1, 2005 Share Posted October 1, 2005 (edited) Hi Can devs clarify any limits if any using INI files. under WinXP/SP2 ? Reason i ask, a buddy of mine has given me a Notes text file from an online poker site and asked if i can extract Names from it. No problem i thought, The structure is similar to an inifile. Here an example f a record in it: [username=Maverick] notes here blah blah I only need the Section names/players the key notes etc i dont need. running this code in Beta 3.1.80 $var = IniReadSectionNames("c:\Notes.txt") If @error Then MsgBox(4096, "", "Error occured, probably no INI file.") Else _arraytoclip($var) EndIf It extracts 1850 Sections/Player Names . the $index[0] confirms this count of Sections/Player Names . trouble is there is considerably more names in the file than this, at least 11000 more names.. Have i hit a ceiling? ***edit *** file is 1.5meg in size plain ascii*** Regards HardCopy Edited October 1, 2005 by HardCopy Contributions: UDF _DateYearFirstChildren are like Farts, you can just about stand your own.Why am I not a Vegetarian?...Well...my ancestors didn't fight & evolve to the Top of the food chain for me to survive on Salad Link to comment Share on other sites More sharing options...
LxP Posted October 1, 2005 Share Posted October 1, 2005 This doesn't answer your question but if you're in dire need of a solution, can you manipulate it as a plain text file, using some regular expressions to pull out the lines starting with [ and parsing the necessary information out of those lines? Link to comment Share on other sites More sharing options...
Valuater Posted October 1, 2005 Share Posted October 1, 2005 (edited) 15. What are the current technical limits of AutoIt v3?Here are details of the current technical limits of AutoIt. Please note that some of the limits are theoretical and you may run into performance or memory related problems before you reach the actual limit. Maximum length of a single script line: 4,095Maximum string length: 2,147,483,647 charactersNumber range (floating point): 1.7E308 to 1.7E+308 with 15-digit precisionNumber range (integers): 64-bit signed integerHexadecimal numbers: 32-bit signed integer (0x80000000 to 0x7FFFFFFF)Arrays: A maximum of 64 dimensions and/or a total of 16 million elementsMaximum depth of recursive function calls: 384 levelsSimultaneous open files: 64Simultaneous active HotKeys: 64Maximum number of variables in use at one time: No limit Maximum number of user defined functions: No limitMaximum number of GUI windows: 1024 Maximum number of GUI controls per window: 4096 ???LxP just wrote this.... i changed 1 linelocal $path = "c:\file.ini" local $tempPath = @tempDir & "\tempFile.ini" local $file = fileOpen($path, 0) local $temp = fileOpen($tempPath, 2) while 1 local $data = fileReadLine($file) if @error then exitLoop if StringLeft($data, 1) = "[" then fileWriteLine($tempPath, $data) wEnd fileClose($file) fileClose($temp) fileDelete($path) fileMove($tempPath, $path)dont know why he didn't do thatyou can remove other non-revelant parts also before writing to the new file8) Edited October 1, 2005 by Valuater Link to comment Share on other sites More sharing options...
LxP Posted October 1, 2005 Share Posted October 1, 2005 Hehe -- I'm just lazy I guess. Here's what I describe in my other post. It'll (attempt to) parse the usernames out into an array. (May need tweaking.) local $path = "c:\file.ini" local $file = fileOpen($path, 0) local $names[2000] $names[0] = 0 while 1 local $data = fileReadLine($file) if @error then exitLoop if stringRegExp($data, "^\[username=(.*)\]$") then local $name = stringRegExp($data, "^\[username=(.*)\]$", 1) $names[0] += 1 $names[$names[0]] = $name[0] endIf wEnd fileClose($file) The StringRegExp() calls could probably be combined into a single call but it may not work for you as it is anyway. Link to comment Share on other sites More sharing options...
Valik Posted October 1, 2005 Share Posted October 1, 2005 HardCopy, yes, there are limits although the exact numbers escape me at the moment. Whatever the limits are on Windows 95 (We enforce those limits to maintain compatibility). I don't think there is a specific limit on number of sections but there is a limit on the size of an INI file and that limit is probably around 65,536 bytes (64 KB). Are you dealing with an INI file that big? Link to comment Share on other sites More sharing options...
HardCopy Posted October 1, 2005 Author Share Posted October 1, 2005 HardCopy, yes, there are limits although the exact numbers escape me at the moment. Whatever the limits are on Windows 95 (We enforce those limits to maintain compatibility). I don't think there is a specific limit on number of sections but there is a limit on the size of an INI file and that limit is probably around 65,536 bytes (64 KB). Are you dealing with an INI file that big?thx guys, I did the task anyhow, just simpy parsed the file with filereadline,saving to new file, only lines that contained text encased in []Contained = 14780 names total.@Valik / yes ini file a grand total of 1.5 megs.Could this limitation be included in the help section related to the IniReadSectionNames.It was only due to the file size & format I was vigilante in looking for possible errors in the result in the first place.Im Just thinking of future users who may get just outside this limit in their ini files and maynot pick up that entries are not read etc.No error condition is returned, and will assume every thing appears good.No critic intended whatsoever, just want to help Autoit Documentation maintain its high standards.RegardsHardCopy Contributions: UDF _DateYearFirstChildren are like Farts, you can just about stand your own.Why am I not a Vegetarian?...Well...my ancestors didn't fight & evolve to the Top of the food chain for me to survive on Salad Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now