Page 1 sur 1
Lister les groupes d'un fichier de preferences
Publié : jeu. 21/juil./2005 16:58
par gansta93
Est-ce possible de lister touts les groupes d'un fichier ini standard ou d'un fichier de préférences créé avec la lib preferences ?
Merci d'avance.
Publié : jeu. 21/juil./2005 18:57
par fweil
J'ai un qq chose comme ça qui présente les clés et les valeurs avec un champ groupe.
Code : Tout sélectionner
Enumeration
#Window_Main
#Gadget_ListIcon
#Menu
#Menu_File
#Menu_Quit
#File
#CSIDL_SYSTEMX86 = $29 ; to get the ..\system32 folder
EndEnumeration
Structure EMID
cb.b
abID.b[1]
EndStructure
Structure ITEMIDLIST
mkid.EMID
EndStructure
Procedure.s GetSystemFolder(Folder)
*itemid.ITEMIDLIST = #NULL
If SHGetSpecialFolderLocation_ (0, Folder, @*itemid) = #NOERROR
Location.s = Space (#MAX_PATH)
If SHGetPathFromIDList_ (*itemid, @Location)
ProcedureReturn Location + "\"
EndIf
EndIf
EndProcedure
WindowWidth = 640
WindowHeight = 480
If OpenWindow(#Window_Main, 0, 0, WindowWidth, WindowHeight, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "MyWindow")
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #PB_Shortcut_Escape)
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Control | #PB_Shortcut_O, #Menu_File)
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Control | #PB_Shortcut_Q, #Menu_Quit)
If CreateMenu(#Menu, WindowID(#Window_Main))
MenuTitle("File")
MenuItem(#Menu_File, "&File (CTRL O)")
MenuItem(#Menu_Quit, "&Quit (CTRL X)")
EndIf
If CreateGadgetList(WindowID(#Window_Main))
ListIconGadget(#Gadget_ListIcon, 10, 10, WindowWidth - 20, WindowHeight - 40, "GroupName", 180)
AddGadgetColumn(#Gadget_ListIcon, 1, "KeyName", 180)
AddGadgetColumn(#Gadget_ListIcon, 2, "Value", 180)
EndIf
Quit = #FALSE
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = #TRUE
Case #PB_Event_Menu
Select EventMenuID()
Case #PB_Shortcut_Escape
Quit = #TRUE
Case #Menu_File
FileName.s = OpenFileRequester("Select a file", GetSystemFolder(#CSIDL_SYSTEMX86), "Ini files|*.ini", 0)
If ReadFile(#File, FileName)
Repeat
a$ = LTrim(RTrim(ReadString()))
If Len(a$) <> 0
Select Left(a$, 1)
Case ";"
; Debug "Comment " + a$
Case "["
GroupName.s = a$
Default
iu.l = FindString(a$, "=", 1)
KeyName.s = Mid(a$, 1, iu - 1)
Value.s = Mid(a$, iu + 1, Len(a$) - iu - 1 + 1)
AddGadgetItem(#Gadget_ListIcon, -1, GroupName + Chr(10) + KeyName + Chr(10) + Value)
EndSelect
EndIf
Until Eof(#File)
CloseFile(#File)
EndIf
Case #Menu_Quit
Quit = #TRUE
EndSelect
EndSelect
Until Quit
EndIf
End
Publié : jeu. 21/juil./2005 19:06
par gansta93
Merci, je vais voir ça de plus prait.
