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.
Lister les groupes d'un fichier de preferences
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
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.