Lister les groupes d'un fichier de preferences

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Lister les groupes d'un fichier de preferences

Message 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.
fweil
Messages : 505
Inscription : dim. 16/mai/2004 17:50
Localisation : Bayonne (64)
Contact :

Message 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
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.
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

Merci, je vais voir ça de plus prait. :-D
Répondre