Enregistrement + 1

AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007 - 7 mai 2005 à 18:05
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 10 mai 2005 à 19:03
Salut a tous
je voudrais faire un enregistrement dans la base de registre
et a chaque enregistrement je voudrais faire + 1
j'ai tester avec :
For i = 1 To 20 step 1 (ou meme sans step 1)
bla bla & i <> "" Then
bla bla & i + 1
End If
Next i

sauf que la dans la boucle il creer directement
les 20 enregistrements avec mon contenu
moi je voudrais faire mon enregistrement avec + 1 a chaque enregistrement sans les les 20 autres
merci pour votre aide
(je merde grave avec les boucles)

merci
assel

15 réponses

NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
7 mai 2005 à 18:18
Salut


Si je comprends bien tu as le meme enregistrement 20 fois sous 20 noms différents

et tu veux que l'enregistrement change aussi selon le nom ?



Soit clair veux-tu


Voila
N$
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
7 mai 2005 à 20:29
Pas très clair en effet ton post.
Ce n'est sûrement pas avec le code que tu as montré que tu écris dans la Registry.
Il y a plein d'exemples de manipulation de la registry sur ce site. Cherche un peu.

--------------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007
7 mai 2005 à 20:35
Salut NicoSoftt
l'enregistrement dans la base de registre s'effect de la facon suivante
Exemple
couleur = text1.txt
\\ cle "toto" \\ Sous cle i \\ Valeur de chaine "voiture" \\ contenu de valeur de chaine couleur

donc quand je lance mon prog cela donne ( il enregistre la sous cle ( i ) )

cle "toto"
sous cle 1 (a 20)
2
3
etc
20

moi je voudrais qu'il enregistre la premiere Sous cle 1(exemple : si un seul enregistrement )
et apres qu'il enregistre la sous cle en 2 (si simplement 2 enregistrement ) et ainsi de suite

Voila Nico

j'espere etre assez Clair

merci

assel

ps si tu a la solution pour lire aussi chaque valeur de chaine de chaque sous cle ....

je prend aussi

Bonne Fin Week
0
AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007
7 mai 2005 à 20:44
salut CanisLupus

effect le code complet est

couleur = text1.txt

For i = 1 To 20

If GetSetting("toto", i, "voiture", i) <> "" Then
SaveSetting "toto", i, "voiture", couleur

End If
Next i

j'ai effect des recherche sur le site et j'ai rien compris desole je ne suis pas un pro de VB

merci
assel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
7 mai 2005 à 20:50
Salut,

Bon comme je comprends pas trop voila :

1 procédure pour ecrire dans la base de registre.

1 fonction pour lire dans la base de registre.

Public Sub Ecrire(Ou, Quoi)

Set WshShell = CreateObject("Wscript.Shell")

WshShell.RegWrite "HKEY_CURRENT_USER\Software\Nico$oft\N$ Chat" & Ou, Quoi

End Sub



Public Function Lire(Ou)

On error resume next

Set WshShell = CreateObject("Wscript.Shell")

Lire = WshShell.regread(Ou)

End Function

...
0
NicoSoftt Messages postés 106 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 28 octobre 2005
7 mai 2005 à 20:53
Excuse-moi; j'ai pris dans une ancienne source et y'a des restes...


Bon comme je comprends pas trop voila :


1 procédure pour ecrire dans la base de registre.


1 fonction pour lire dans la base de registre.



Public Sub Ecrire(Ou, Quoi)


Set WshShell = CreateObject("Wscript.Shell")


WshShell.RegWrite Ou, Quoi


End Sub




Public Function Lire(Ou)


On error resume next


Set WshShell = CreateObject("Wscript.Shell")


Lire = WshShell.regread(Ou)


End Function
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
7 mai 2005 à 20:59
Bon, je n'ai pas le temps de tout t'expliquer maintenant car j'ai d'autres obligations.
Mais en attendant, tes getsetting et savesetting, j'aimerais savoir où tu les as péchés. Normalement, à la place de "toto", c'est le code de l'HKEY qu'il faut mettre.
Désolé, rendez-vous demain, si personne ne t'a fourni une soluton ou si tu ne l'a pas trouvée toi-même.

--------------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007
7 mai 2005 à 21:15
NicoSoftt

je voudrais utiliser le format

GetSetting("cle", "sous cle", "valeur de chaine", "contenu de valeur de chaine") <> "" Then
SaveSetting "cle", "sous cle", "valeur de chaine", "contenu de valeur de chaine "

puisque tous mon prog l'utilise

j'ai essayer avec la facon Wscript.Shell et j'ai jamais reussi a faire quelque chose

CanisLupus

quand meme bien plus simple pour ecrire dans la base de registre ( enfin pour moi )

merci

assel

Bonne fin de Week
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
8 mai 2005 à 16:30
Hier, je pensais te donner un exemple avec les API car plus rapide mais puisque tu trouves WshShell plus simple, voici un code qui respecte le format que tu veux avec WshShell.

Dans un module, tu mets ce qui suit :

' Cette fonction renvoie "" si la clé et/ou valeur n'existent pas ou si la valeur est vide
' sinon elle renvoie le contenu
Public Function GetSetting(Cle As String, SousCle As String, Valeur As String, Contenu As String) As String
Dim WshShell As Object
Dim Resultat As String


GetSetting = False
Set WshShell = CreateObject("Wscript.Shell")
On Error Resume Next
Resultat = WshShell.RegRead(Cle & "" & SousCle & "" & Valeur)
GetSetting = Resultat
Set WshShell = Nothing

End Function

' Avec cette proc, tu écris ton contenu en créant la valeur si elle n'existe pas
Public Sub SetSetting(Cle As String, SousCle As String, Valeur As String, Contenu As String)
Dim WshShell As Object


Set WshShell = CreateObject("Wscript.Shell")
WshShell.RegWrite Cle & "" & SousCle & "" & Valeur, Contenu
Set WshShell = Nothing

End Sub


Puis, où tu veux, tu les appelles comme ça, pour l'essai, je l'ai mis dans un commandbutton, à toi d'en faire ce que tu souhaites :

Private Sub Command1_Click()
Dim SousCle As String
Dim ContenuChaine As String
Dim i As Integer


SousCle = "software\essai"
ContenuChaine = "truc"


For i = 1 To 20
If GetSetting("HKEY_LOCAL_MACHINE", SousCle, CStr(i), ContenuChaine) = "" Then
Call SetSetting("HKEY_LOCAL_MACHINE", SousCle, CStr(i), ContenuChaine)
End If
Next

End Sub

J'espère que ça répond à ta question.

--------------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007
8 mai 2005 à 22:22
Salut CanisLupus

et merci pour ton aide

j'ai le meme resultat qu'avec mes 4 lignes de code (sans module )

il fait une creation dans HKLM de 20 lignes avec comme valeur = truc ( 20 X la meme ligne )

------------------------------------------------------------------------------------
pour faire plus simple
test le code suivant ( 2 textbox et 1 commandbutton colle le code si dessous et remplis le text1 et text2 2 ou 3 fois et cherche dans la base de registre aideCanisLupus )

Public Sub Command1_Click()
Dim contenu_1 As String
contenu_1 = Text1.Text
Dim contenu_2 As String
contenu_2 = Text2.Text
For i = 1 To 20


If GetSetting("aideCanisLupus", contenu_1, "Valeur_de_chaine", i) <> "" Then
SaveSetting "aideCanisLupus", contenu_1, "Valeur_de_chaine", contenu_1 'sauvegarde MonEmail dans i


SaveSetting "aideCanisLupus", contenu_1, "Valeur_de_chaine_2", contenu_2 'pour un 2em enregistrement dans la meme valeur de chaine


End If
Next i
Fin:


Text1.Text = ""
Text2.Text = ""
End Sub


et en suite je voudrais lire toute les valeurs de chaines de toutes les sous cle et afficher le contenu ( dans un combo par exemple )

plus simple , je peut pas

assel
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
8 mai 2005 à 22:51
Désolé, je viens de comprendre (tu ne l'avais pas précisé) que tu étais en vb.net.
Les exemples donnés sont en vb6.
Je n'ai pas encore étudié les équivalences entre vb6 et vb.net pour ce qui est de la base de registre.

--------------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007
8 mai 2005 à 23:00
non non je suis en Visual Basic 6 ( j'ai deja du mal en vb6 alors imagine en .net )

assel
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
9 mai 2005 à 19:33
Hou là, je devais être à l'ouest ce weekend !
Bien sûr ! Tu utilises les fonctions Getsetting et Savesetting de vb6 que j'avais complètement oubliées.
En effet, ces fonctions permettent de lire et d'écrire uniquement dans le HKEY_USERS\.DEFAULT\Software\VB and VBA Program Settings, c'est d'ailleurs pour ça que je les ai abandonnées. Trop limitées.
En gros, pour moi, ça ne pouvait servir qu'à remplacer les fichiers.ini.

Mais, bon, si tu te sens plus à l'aise avec, il y a une 3ème fonction qui peut faire ce que tu souhaites : GetAllSettings

Si tu n'as pas la MSDN, voilà l'exemple qu'elle propose :

' Variant devant contenir un tableau &#224; deux dimensions renvoy&#233; par la 
' fonction GetAllSettings Nombre entier correspondant &#224; la valeur du compteur.
Dim MySettings As Variant, intSettings As Integer
' Place des param&#232;tres dans la base de registres.
SaveSetting appname :=  "MyApp", section := "Startup", _
key := "Top", setting := 75
SaveSetting "MyApp","Startup", "Left", 50
' Extrait les param&#232;tres.
MySettings =  GetAllSettings(appname :=  "MyApp", section : = "Startup")
   For intSettings = LBound(MySettings, 1) To UBound(MySettings, 1)
      Debug.Print MySettings(intSettings, 0), MySettings(intSettings, 1)
   Next intSettings
DeleteSetting "MyApp", "Startup"


Vois si ça te convient.

--------------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
AsselusBorealiss Messages postés 79 Date d'inscription dimanche 15 octobre 2000 Statut Membre Dernière intervention 24 septembre 2007
9 mai 2005 à 22:19
mouais entre :

SaveSetting "Myapp", "Startup", "Top", text1.text
et
SaveSetting AppName:=App.Title, Section:="Startup", Key:="Top", setting:=text1.text

ca m'explique pas comment faire une boucle pour creer plusieur "" Section:= ""


Et arriver à les relire dans un combo (exemple)

assel

(ps : tu a tester le petit bou de code)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
10 mai 2005 à 19:03
Rajoute une combo (combo1) sur ta feuille et testes ce code :

Public Sub Command1_Click()
Dim MySettings As Variant, intSettings As Integer
Dim contenu_1 As String
Dim contenu_2 As String
Dim i As Integer


contenu_1 = Text1.Text
contenu_2 = Text2.Text


For i = 1 To 20
If GetSetting("aideCanisLupus", CStr(i), "Valeur_de_chaine", i) <> "" Then
SaveSetting "aideCanisLupus", CStr(i), "Valeur_de_chaine", contenu_1 'sauvegarde MonEmail dans i
SaveSetting "aideCanisLupus", CStr(i), "Valeur_de_chaine_2", contenu_2 'pour un 2em enregistrement dans la meme valeur de chaine
End If
Next i


' Affiche tout les contenus
For i = 1 To 20
MySettings = GetAllSettings(appname:="aideCanisLupus", section:=CStr(i))
For intSettings = LBound(MySettings, 1) To UBound(MySettings, 1) Combo1.AddItem "Clé " & i & " valeur " & MySettings(intSettings, 0) & " : contenu = " & MySettings(intSettings, 1)
Next intSettings
Next


End Sub

--------------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Rejoignez-nous