Search the Community
Showing results for tags 'inireadsectionnames'.
-
Hi Seams IniReadSectionNames does not show all Sections names (First one is missing ... [Site Information]) My code Local $aSections=IniReadSectionNames($ThisIni) $ThisIni : [Site Information] Equipment ID:=539456593 Customer Name:=CH Address: =- City State:=Town Country:=France Phone:= Zip Code:=24000 Product Type:=Master [Computer] Computer Name=CHPRODFR Hardware Manufacturer=HP Hardware Model=ProLiant ML350 Gen9 Processor=Intel(R) Xeon(R) CPU E5-2643 v3 @ 3.40GHz Number of memory modules=4 Total Memory size=32 GB BIOS version=P92 [Physical Disk Details] 1=2.00 TB [Logical Disk Details] C:\=63.6 GB D:\=2062.1 GB F:\=872.8 GB [NIC Details] Embedded LOM 1 Port 1=00:10:6F:C5:FD:8E Hospital-LAN=70:10:6F:C5:FD:8E [Graphic Card Details] DriverDate=20150826 DriverVersion=4.1.2.2 Name=Matrox G200eh (HP) WDDM 1.2 Status=OK VideoProcessor=Matrox G200eH [Memory Card Details] 8192=752368-081 8192=752368-081 8192=752368-081 8192=752368-081 [Missing Components] [Non-standard Components] [Installed Hotfixes] $aSections Row|Col 0 [0]|9 [1]|Computer [2]|Physical Disk Details [3]|Logical Disk Details [4]|NIC Details [5]|Graphic Card Details [6]|Memory Card Details [7]|Missing Components [8]|Non-standard Components [9]|Installed Hotfixes
-
The path are cutted! maybe double [] in the path generated the error. Example: [I:\aaa\cc\aa vv vv vv (dd).txt] name=aa vv vv vv (dd).txt [I:\ffff\ffff\ffff ffff ffff ffff [ffff]\ffff\ffff.txt] name=ffff.txt $ini = IniReadSectionNames(@ScriptDir&"\my.ini") _ArrayDisplay($ini) for $x = 1 to UBound($ini)-1 ConsoleWrite($ini[$x]&@CRLF) Next
-
HI friends, I would order this array, starting from the name of the last folder. My situation... My file ini [C:\program\room\p\file.exe] [E:\program\room\a\file.exe] [D:\program\room\m\file.exe] Goal.... sort by last folder! a-m-p Any Idea, THX $ini = @ScriptDir&"\ini.ini" $aArrays = IniReadSectionNames($ini) For $i = 1 To UBound($aArrays)-1 ConsoleWrite($aArrays[$i]&@CRLF) ConsoleWrite(StringRegExp($aArrays[$i],'.*\\(.*)\\',1)[0]&@CRLF) Next
-
Hello once again! First of all I must say I'm not sure if I posted this in the correct forum, as this contains a GUI and such, but the problem ain't relevant with the GUI. I've encountered a little problem with the IniReadSectionNames-function. I'm making a script w/ a GUI which helps you create a ListView. At the end you'll be able to save the information in an .ini-file which will be read at the next startup of the script. What I'm trying to achieve is that the script will read the .ini and check for previously saved functions, and compare them with the functions listed in the ListView. If a function is listed in the .ini, but not in the ListView the section containing that function will be deleted. If the function is listed in both the .ini and in the ListView it will leave the section be. When it's done going through the prevously saved functions it will parse through comparing the new functions with the old ones and write the new ones into new sections. The problem is with the IniReadSectionNames-function when the .ini doesn't contain any sections to read. In my world I'd like it to still create an array where $array[0] would be equal to 0 if no sections were found. I hope I made myself understood with this. Following is the script in its whole. And if anyone happen to have an improvement of any kind I'd be much grateful! Best regards, zvvyt #Include <Misc.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #Include <GuiListView.au3> #include <EditConstants.au3> #Include <String.au3> Global $Input_name $Main_window = GUICreate("Folder checker - Settings",400,300,-1,-1) $list = GUICtrlCreateListView("Name |Function |Folder(s) to check |Files |Date ",20,100,360,150) $Button_new = GUICtrlCreateButton("New",25,260,80,30) $Button_delete = GUICtrlCreateButton("Delete",115,260,80,30) $Button_info = GUICtrlCreateButton("Info",205,260,80,30) $Button_save = GUICtrlCreateButton("Save",295,260,80,30) $Interval_input = GUICtrlCreateInput("0",285,30,40,22) GUICtrlSetLimit(-1,4,1) GUICtrlCreateCombo("ms",340,30,40,30) GUICtrlSetData(-1,"s|min|h") GUISetState(@SW_SHOW) while 1 $msg = GUIGetMsg() switch $msg case $GUI_EVENT_CLOSE Exit case $Button_new call("New") ConsoleWrite("New function ended"&@crlf) case $Button_delete call("Delete") Case $Button_info call("Info") case $Button_save Call("Save") EndSwitch if _GUICtrlListView_GetSelectedCount($list) = 0 and GUICtrlGetState($Button_delete) = 80 then GUICtrlSetState($Button_delete,$gui_disable) GUICtrlSetState($Button_info,$gui_disable) EndIf if _GUICtrlListView_GetSelectedCount($list) > 0 and GUICtrlGetState($Button_delete) = 144 then GUICtrlSetState($Button_delete,$gui_enable) GUICtrlSetState($Button_info,$gui_enable) EndIf WEnd #region "New" part Func New() #region Function selection part $Input_name = InputBox("Folder checker - New","Enter a name for the new function"&@crlf&"NOTE! Duplicate or blank names are not allowed","","","","",Default,Default,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Name check"&@crlf) Return EndIf if @error <> 0 then ConsoleWrite("ERROR:"&@error&"@Name check") Return EndIf if $Input_name = "" then Do $Input_name = InputBox("Folder checker - New","Enter a name for the new function"&@crlf&"NOTE! Duplicate or blank names are not allowed","","","","",Default,Default,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Name check"&@crlf) Return EndIf if @error <> 0 then ConsoleWrite("ERROR:"&@error&"@Name check") Return EndIf until $Input_name <> "" EndIf for $1 = 0 to _GUICtrlListView_GetItemCount($list) step +1 $Name_dublicate_check = _GUICtrlListView_GetItemText($list,$1,0) if $Input_name = $Name_dublicate_check Then ConsoleWrite("Duplicate names!"&@crlf) MsgBox(0,"Folder checker - Error", "Name already in use. Please select a new name") $Input_name = "" $Name_dublicate_check = "" call("New") Return EndIf Next ConsoleWrite("Passed namecheck"&@crlf) $Select_function = GUICreate("Folder checker - Select a function",200,200,-1,-1,$WS_BORDER,"",$Main_window) $Select_function_func1 = GUICtrlCreateRadio("Copy files",30,20,170,30) ;-----------------------------------COPY GUICtrlSetTip(-1,"Click the ""?"" for more info") $Select_function_func2 = GUICtrlCreateRadio("Move files",30,50,170,30) ;-----------------------------------MOVE GUICtrlSetTip(-1,"Click the ""?"" for more info") $Select_function_func3 = GUICtrlCreateRadio("Delete files",30,80,170,30) ;---------------------------------DELETE GUICtrlSetTip(-1,"Click the ""?"" for more info") $Select_function_continue = GUICtrlCreateButton("Continue",15,140,80,30) GUICtrlSetState(-1,$gui_disable) local $Select_function_continue_disabled = 1 $Select_function_cancel = GUICtrlCreateButton("Cancel",105,140,80,30) GUISetState(@sw_show) local $Function_selected = "" local $Destinating_folder while 1 ;----------------------------------------Select function ;if WinActive($Main_window) then WinActivate($Select_function) GUISetState(@sw_disable,$Main_window) $msg = GUIGetMsg() if $Select_function_continue_disabled = 1 and BitXOR(GUICtrlRead($Select_function_func1),GUICtrlRead($Select_function_func2),GUICtrlRead($Select_function_func3)) = $GUI_CHECKED then GUICtrlSetState($Select_function_continue,$gui_enable) $Select_function_continue_disabled = 0 EndIf switch $msg case $Select_function_cancel ConsoleWrite("Cancel@Function selection"&@crlf) GUISetState(@SW_ENABLE,$Main_window) GUIDelete($Select_function) WinActivate($Main_window) Return case $Select_function_continue If BitAND(GUICtrlRead($Select_function_func1), $GUI_CHECKED) = $GUI_CHECKED then GUIDelete($Select_function) $Function_selected = "Copy" ;call("NewCopy") EndIf if BitAND(GUICtrlRead($Select_function_func2), $GUI_CHECKED) = $GUI_CHECKED then GUIDelete($Select_function) $Function_selected = "Move" ;call("NewMove") EndIf if BitAND(GUICtrlRead($Select_function_func3), $GUI_CHECKED) = $GUI_CHECKED then GUIDelete($Select_function) $Function_selected = "Delete" ;call("NewDelete") EndIf ;GUISetState(@SW_ENABLE,$Main_window) ExitLoop EndSwitch WEnd #endregion End Function selection part #region Folder selection part ConsoleWrite($Function_selected) if $Function_selected = "Delete" then $Origin_folder = FileSelectFolder("Select file folder","",1,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Folder selction"&@crlf) GUISetState(@SW_ENABLE,$Main_window) Return EndIf Else $Origin_folder = FileSelectFolder("Select file origin folder","",1,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Origin folder selction"&@crlf) GUISetState(@SW_ENABLE,$Main_window) Return EndIf $Destinating_folder = FileSelectFolder("Select destinating folder","",1,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Destinating folder selction"&@crlf) GUISetState(@SW_ENABLE,$Main_window) Return EndIf if $Origin_folder = $Destinating_folder Then Do MsgBox(0,"Error","Same folder specified. Please chose another folder to copy from/to") $Origin_folder = FileSelectFolder("Select file origin folder","",1,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Origin folder selction"&@crlf) GUISetState(@SW_ENABLE,$Main_window) Return EndIf $Destinating_folder = FileSelectFolder("Select destinating folder","",1,"",$Main_window) if @error = 1 then ConsoleWrite("Cancel@Destinating folder selction"&@crlf) GUISetState(@SW_ENABLE,$Main_window) Return EndIf until $Origin_folder <> $Destinating_folder EndIf EndIf #endregion End Folder selection part #region File selection part $Select_files = GUICreate("Folder checker - Select files",200,200,-1,-1,$WS_BORDER,"",$Main_window) $All_files = GUICtrlCreateRadio("All files",30,30,170,30) $Specific_files = GUICtrlCreateRadio("Specific filetype",30,60,170,30) $Filetype_input = GUICtrlCreateInput("",50,100,100,20) $Select_files_continue = GUICtrlCreateButton("Continue",15,140,80,30) GUICtrlSetState(-1,$gui_disable) Local $Select_files_continue_disable = 1 $Select_files_cancel = GUICtrlCreateButton("Cancel",105,140,80,30) GUICtrlSetState($Filetype_input,$gui_disable) GUISetState(@sw_show) Local $Filetype_input_Dot_checker[4] while 1 $Filetype_input_Space_checker = StringSplit(GUICtrlRead($Filetype_input)," ") If $Filetype_input_Space_checker[0] = 2 Then $Filetype_input_no_space = StringReplace(GUICtrlRead($Filetype_input)," ","") GUICtrlSetData($Filetype_input,$Filetype_input_no_space) EndIf $Filetype_input_Dot_checker = StringSplit(GUICtrlRead($Filetype_input),".") if $Filetype_input_Dot_checker[0] >= 2 Then if $Filetype_input_Dot_checker[1] <> "" then GUICtrlSetData($Filetype_input,StringReplace(GUICtrlRead($Filetype_input),".","",1)) EndIf if $Filetype_input_Dot_checker[0] = 3 then GUICtrlSetData($Filetype_input,_StringReverse(StringReplace(_StringReverse(GUICtrlRead($Filetype_input)),".","",1))) EndIf EndIf GUISetState(@SW_DISABLE,$Main_window) if GUICtrlRead($Specific_files) = 1 and GUICtrlRead($Filetype_input) = "" and $Select_files_continue_disable = 0 Then GUICtrlSetState($Select_files_continue,$gui_disable) $Select_files_continue_disable = 1 EndIf if GUICtrlRead($Specific_files) = 1 and GUICtrlRead($Filetype_input) = "." and $Select_files_continue_disable = 0 Then GUICtrlSetState($Select_files_continue,$gui_disable) $Select_files_continue_disable = 1 EndIf if GUICtrlRead($All_files) = 1 and $Select_files_continue_disable = 1 Then GUICtrlSetState($Select_files_continue,$gui_enable) $Select_files_continue_disable = 0 EndIf if GUICtrlRead($Specific_files) = 1 and GUICtrlRead($Filetype_input) <> "" and $Select_files_continue_disable = 1 and GUICtrlRead($Filetype_input) <> "." Then GUICtrlSetState($Select_files_continue,$gui_enable) $Select_files_continue_disable = 0 EndIf $msg = GUIGetMsg() switch $msg case $Select_files_cancel GUISetState(@SW_ENABLE,$Main_window) ConsoleWrite("Cancel@File selection"&@crlf) GUIDelete($Select_files) Return case $Specific_files GUICtrlSetState($Filetype_input,$gui_enable) case $All_files GUICtrlSetState($Filetype_input,$gui_disable) case $Select_files_continue $Function_date_made_long = @YEAR&@MON&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC $Function_date_made = @MDAY&"/"&@MON&" "&@HOUR&":"&@MIN if GUICtrlRead($All_files) = $GUI_CHECKED Then if $Function_selected = "Delete" then GUICtrlCreateListViewItem($Input_name&"|"&$Function_selected&"|"&$Origin_folder&"|All|"&$Function_date_made_long,$list) Else GUICtrlCreateListViewItem($Input_name&"|"&$Function_selected&"|"&$Origin_folder&" to "&$Destinating_folder&"|All|"&$Function_date_made_long,$list) EndIf GUIDelete($Select_files) ConsoleWrite("All files"&@crlf) EndIf if GUICtrlRead($Specific_files) = $GUI_CHECKED and GUICtrlRead($Filetype_input) <> "" then $Filetype_input_Dot_checker = StringSplit(GUICtrlRead($Filetype_input),".") if $Filetype_input_Dot_checker[0] = 1 Then GUICtrlSetData($Filetype_input,"."&GUICtrlRead($Filetype_input)) EndIf $Filetype_input = StringLower(GUICtrlRead($Filetype_input)) if $Function_selected = "Delete" then GUICtrlCreateListViewItem($Input_name&"|"&$Function_selected&"|"&$Origin_folder&"|"&$Filetype_input&"|"&$Function_date_made_long,$list) Else GUICtrlCreateListViewItem($Input_name&"|"&$Function_selected&"|"&$Origin_folder&" to "&$Destinating_folder&"|"&$Function_date_made_long,$list) EndIf GUIDelete($Select_files) ConsoleWrite("Specific files"&@crlf) EndIf GUISetState(@SW_ENABLE,$Main_window) ExitLoop EndSwitch WEnd #endregion End File selection part WinActivate($Main_window) EndFunc #endregion func Delete() _GUICtrlListView_DeleteItemsSelected($list) EndFunc Func Info() EndFunc Func Save() ;-------------------------------------------------------- Trouble starts here! -------------------------------------- ConsoleWrite("Save initialized"&@CRLF) GUICtrlSetState($Button_save,$gui_disable) if not FileExists("Settings.ini") Then ConsoleWrite("No Settings.ini-file found"&@CRLF) IniWrite("Settings.ini","","","") Else $Save_check_earlier_functions = IniReadSectionNames("Settings.ini") if @error then MsgBox(0,"","") $Save_check_current_functions = _GUICtrlListView_GetItemCount($list) if $Save_check_earlier_functions[0] <> 0 Then ConsoleWrite("Earlier functions differ to 0"&@CRLF) For $count1 = 1 to $Save_check_earlier_functions[0] step +1 for $count2 = 1 to $Save_check_current_functions step +1 ;ConsoleWrite($Save_check_earlier_functions[$count2]&@CRLF) if $Save_check_earlier_functions[$count2] = _GUICtrlListView_GetItemText($list,$count1,0) then Else if $count2 = $Save_check_earlier_functions[0] Then IniDelete("Settings.ini",$Save_check_earlier_functions[$count2]) EndIf Next Next For $count1 = 1 to $Save_check_current_functions step +1 for $count2 = 1 to $Save_check_earlier_functions[0] step +1 ConsoleWrite(_GUICtrlListView_GetItemText($list,$count2,0)&@CRLF) if _GUICtrlListView_GetItemText($list,$count2,0) = $Save_check_earlier_functions[$count1] Then ExitLoop Else IniWrite("Settings.ini",_GUICtrlListView_GetItemText($list,$count2,0),"Function",_GUICtrlListView_GetItemText($list,$count2,1)) IniWrite("Settings.ini",_GUICtrlListView_GetItemText($list,$count2,0),"Folder",_GUICtrlListView_GetItemText($list,$count2,2)) IniWrite("Settings.ini",_GUICtrlListView_GetItemText($list,$count2,0),"File",_GUICtrlListView_GetItemText($list,$count2,3)) IniWrite("Settings.ini",_GUICtrlListView_GetItemText($list,$count2,0),"Date",_GUICtrlListView_GetItemText($list,$count2,4)) EndIf Next Next EndIf ;EndIf ;ConsoleWrite(_GUICtrlListView_GetItemCount($list)&@CRLF) ;ConsoleWrite(_GUICtrlListView_GetItemText($list,0,1)&@CRLF) GUICtrlSetState($Button_save,$gui_enable) ConsoleWrite("Save finished"&@CRLF) EndFunc;-------------------------------------------------------- Trouble ends here! --------------------------------------
-
I am trying to pull information from different files. They will all be grouped together by name. In treeview I would have Last Name << This labels would be the actual name. -First Name -Address -Phone Number I currently have the above information saved into 4 different ini files. I am writting the values as Section Keys. Like so: IniWriteSection(@ScriptDir & "\First Name.ini", GUICtrlRead($Name),"") Then read it into an array such as Local $Name2 = IniReadSectionNames(@ScriptDir & "\First Name.ini") For $I = 1 To $Name2[0] GUICtrlSetData(-1, $Name2[$I] & "|") Next The problem is I can not get the separate values into the TreeView based on what last name is selected. Here is what I have so far: Onlastnamesearch("CueClub") Func Onlastnamesearch($LastName) GUICreate("Notes for " & $LastName, 300, 250, -1, -1, "", $WS_EX_TOPMOST) GUICtrlCreateLabel("LAST NAME", 5, 10, 60, 40) Local $Tmp = IniReadSectionNames(@ScriptDir & "\Last Name.ini") Local $Tmp2 = GUICtrlCreateTreeView(5, 50, 170, 100) For $I = 1 To $tmp[0] $tmp3 = GUICtrlCreateTreeViewItem($tmp[$i], $Tmp2) $FirstName = GUICtrlCreateTreeViewItem("First Name", $Tmp3) $Address = GUICtrlCreateTreeViewItem("Address", $Tmp3) $PhoneNumber = GUICtrlCreateTreeViewItem("Phone Number", $Tmp3) Next Local $exit = GUICtrlCreateButton("Exit", 5, 160, 50, 20) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() Select Case $msg = $exit Or $msg = $GUI_EVENT_CLOSE ExitLoop EndSelect WEnd GUIDelete() EndFunc ;==>Example As you can see above, I can get the treeview to populate, and even the tree items, However I am stumped as to how to pull the data from the separate ini files and display them based on what is clicked on the treeview. I have read the help file, and searched here a bit, but it is a bit confusing for me. Any help would be appreciated. CC