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. :-D