Comment lire un tableau dans le registre

Comment lire un tableau dans le registre - VB/VBA/VBS - Programmation

Marsh Posté le 31-10-2011 à 09:37:08    

Bonjour à tous,
 
J'ai déclaré une structure simple et une list(Of) qui en dépend :
 

Code :
  1. Public Structure PlaceLieux
  2.         Dim Ville As String
  3.         Dim Decalage As Integer
  4.     End Structure
  5.     Public listeLieux As New List(Of PlaceLieux)
  6. 'Jusque là, ça va  :pt1cable:
  7. 'J'enregistre, dans le registre, ma liste avant de quitter :
  8.         Const userRoot As String = "HKEY_CURRENT_USER\MonAppli\"
  9.         Const subkey1 As String = "PlacesLieux"
  10.         Const keyName1 As String = userRoot & "\" & subkey1
  11.         Dim i%
  12.         For i = 0 To listeLieux.Count - 1
  13.             Registry.SetValue(keyName1, "Place" & (i.ToString).Trim, listeLieux(i).Ville)
  14.             Registry.SetValue(keyName1, "Decal" & (i.ToString).Trim, listeLieux(i).Decalage)
  15.         Next
  16. 'Il semble que, là, ça aille encore  :)
  17. 'MAIS je ne sais pas relire. J'ai essayé plusieurs formules mais j'ai toujours un bugue  :cry: . Mon code, pour l'instant :
  18.         Const userRoot As String = "HKEY_CURRENT_USER\MonAppli\"
  19.         Const subkey1 As String = "PlacesLieux"
  20.         Const keyName1 As String = userRoot & "\" & subkey1
  21.         Dim i%
  22.         Dim valeurV As String
  23.         Dim valeurD As Integer
  24.         i = 0
  25.         For Each subkey In keyName1
  26.             cle = Registry.LocalMachine.OpenSubKey(keyName1, True)
  27.             valeurV = cle.GetValue("Place", "" )
  28.             valeurD = cle.GetValue("Decal", "0" )
  29.             listeLieux(i).Ville = valeurV  <----------  'Le dégoger me dit "Cette expression est _
  30.             listeLieux(i).Decalage = valeurD   <----- 'une valeur et ne peut donc pas être la cible d'une _
  31.                                                                             'assignation" en soulignant la variable listeLieux
  32.             cle.Close()
  33.             i += 1
  34.         Next


 
J'ai essayé d'écrire (parce que je n'y comprends pas grand chose à cette erreur) :
 

Code :
  1. listeLieux(i).Decalage = valeurD


Quelqu'un pourrait-il m'aider ?

Reply

Marsh Posté le 31-10-2011 à 09:37:08   

Reply

Marsh Posté le 31-10-2011 à 09:40:14    

Mauvaise manip... Je suis nouveau ici...
 
Je disais : j'ai essayé d'écrire :
 
listeLieux(i).Ville = cStr(valeurD)
 
et
 
listeLieux(i).Ville = valeurD.toString
 
Mais j'obtiens la même erreur !

Reply

Marsh Posté le 31-10-2011 à 09:55:40    

Salut,pourquoi ne pas utiliser des fichiers INI ? voir par exemple http://faq.vb.free.fr/index.php?question=32 et http://vb.developpez.com/faq/?page=Systeme#ini


Message édité par kiki29 le 31-10-2011 à 09:58:14

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 31-10-2011 à 10:06:08    

Oh, parce que je tente (depuis 50 jours) de développer en Net avec VB 2010 et que le ini je le faisais avec VB 4 (d'où je viens). J'essaie de suivre l'évolution pour ne pas rester en traîne..

Reply

Marsh Posté le 31-10-2011 à 12:27:42    

re,ok mais la base de registre, à priori, sert plutot à la sauvegarde de parametres et n'est pas appropriée comme "base de données"


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 31-10-2011 à 12:40:24    

Oui, je vais certainement abandonner l'idée... Merci de ta réponse.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed