polps Posted December 20, 2012 Posted December 20, 2012 Hello all, I have a strange problem with IniRead. I receive some INI file; they are very large file with a big amount of data. Unfortunately, they seems not standard INI (and I can't change this format) because the data are written in several multi line. For this reason, I can't use the funciont Ini Read "as is" because only the first line are returned. So, before using IniRead I have to strip the @CRLF to have the data in only one record. The odd behavior is that I can't retrieve all the data from a key because they are truncated. I'm sorry but I am not able to understand my error (or if there are limits in IniRead function).. I attached a simple test script with an example. Test.zip Thanks all!
guinness Posted December 20, 2012 Posted December 20, 2012 Search _IniRead in the examples. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018
Moderators Melba23 Posted December 20, 2012 Moderators Posted December 20, 2012 polps,I just used _FileReadToArray to get all of your example ini file into an array with no problem at all. I presume you can extract the data from there. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
polps Posted December 20, 2012 Author Posted December 20, 2012 Ok, I solved the problem with _Iniread. Tanks all!
Moderators Melba23 Posted December 20, 2012 Moderators Posted December 20, 2012 polps, As that is a very non-standard ini file, would you mind explaining how you did it? [SECTION_1] numelements = 12897 elements = TRE_LBCHS273_PLS: VMMI_FCO.APP_CLC.TRE_LBCHS273, TRE_LBCHS275_PLS: VMMI_FCO.APP_CLC.TRE_LBCHS275, TRE_LBCHS275D_PLS: VMMI_FCO.APP_CLC.TRE_LBCHS275D, TRE_LBCHS276_PLS: VMMI_FCO.APP_CLC.TRE_LBCHS276, and so on...... M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
polps Posted December 21, 2012 Author Posted December 21, 2012 polps, As that is a very non-standard ini file, would you mind explaining how you did it? I modified the script using _IniReadEx instead IniRead.. it seems to me that it's ok.. #include #include $FileIni = "Test.ini" ; Input INI file $FileOut = "Test.out" ; Output TEXT file $FileIniTmp = _TempFile () $FileOutTmp = _TempFile () ; Creating TEMP INI file to strip the @CRLF from the section $oFileIni = FileOpen ( $FileIni, 0 ) $vFileIni = FileRead ( $oFileIni ) FileClose ( $oFileIni ) $vFileIni = StringReplace ( $vFileIni, "," & @CRLF, "," ) $oFileTmp = FileOpen ( $FileIniTmp, 2 ) FileWrite ( $FileIniTmp, $vFileIni ) FileClose( $FileIniTmp ) ; Reading the SECTION_1 $ElementList = _IniReadEx ( $FileIniTmp, "SECTION_1", "elements", "NONE" ) ; Writing TEMP OUT file $oFileOutTmp = FileOpen ( $FileOutTmp, 2 ) FileWrite ( $oFileOutTmp, $ElementList ) FileClose( $oFileOutTmp ) ; Creating OUT file to adding the @CRLF $oFileOutTmp = FileOpen ( $FileOutTmp, 0 ) $vFileOutTmp = FileRead ( $oFileOutTmp ) FileClose ( $oFileOutTmp ) $vFileOutTmp = StringReplace ( $vFileOutTmp, ",", "," & @CRLF ) $oFileOut = FileOpen ( $FileOut, 2 ) FileWrite ( $oFileOut, $vFileOutTmp ) FileClose( $oFileOut ) FileDelete ( $FileIniTmp ) FileDelete ( $FileOutTmp )
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