Ecrire des data dans registre

crogger Messages postés 32 Date d'inscription vendredi 5 avril 2002 Statut Membre Dernière intervention 23 octobre 2006 - 30 avril 2002 à 11:37
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 - 2 mai 2002 à 00:53
Salut, je voudrai arriver à ecrire dans la base registre des informations de type DATA...par exemple, une fois détérminé le chemin etc... pouvoir ecrire une chaine de valeur HEXA:
exemple write.........('DATA','01,ff,14,a1,b2............)
alors g crée une variable de type array [ 1..30 ] of ....
seulement les valeurs que j'ai sont en hexa, suis-je obligé de les convertir en integer ? (pour kelles soient retraduites en hexa dans la base).
De plus il y a au moins 30 valeurs à entrer, suis-je obligé de faire variable[1]:=1...[2]:=ff etc........??

merci pour vos réponses :-)

6 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
30 avril 2002 à 13:57
--- :sleepy) Nono du Moulin :sleepy) ---
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
30 avril 2002 à 14:05
Utilise l'objet Tregistry pour lire et écrire dans le base de registre.

Dans ton tableau les valeurs sont elles de la forme chaine (Array Of String[2]) ou entières (Array of Integer) ? Pour le stockage dans le registre il faut simplement que tu utilises le même format que celui de ton tableau. Tu n'aura donc pas de conversion à faire.

Si tu souhaites convertir c'est tout simple avec delphi :
Entier en chaine hexa : IntToHex(MonEntier,NombreChiffres);
Chaine hexa en entier : StrToInt('$'+MaChaineHexa);

Dans tous les cas il suffit de faire une boucle de 1 à 30 pour stocker les valeurs.

--- :sleepy) Nono du Moulin :sleepy) ---
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
30 avril 2002 à 19:49
Voici en fait ce qu'il faut faire pour écrire une clef binaire de 30 octets :

procedure TForm1.Button1Click(Sender: TObject);
var Reg : TRegistry;
Tableau : Array[1..30]Of Byte;
i : Integer;
begin
// Tableau avec des valeur aléatoires pour démo
For i:=1 to 30 Do Tableau[i]:=Random(256);

// Ecriture du tableau dans la base de registre
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\REG_DEMO', True) then
Reg.WriteBinaryData('Valeur',Tableau,30);
finally
Reg.CloseKey;
Reg.Free;
end
end;

--- :sleepy) Nono du Moulin :sleepy) ---
0
crogger Messages postés 32 Date d'inscription vendredi 5 avril 2002 Statut Membre Dernière intervention 23 octobre 2006
1 mai 2002 à 11:50
Ok merci pour cet exemple, mais mon probleme c'est que les 30 valeurs que j'ai à entrer sont pas aléatoires mais bien precises....donc dois-je ecrire 30 fois une assignation pôur chaque case du tableau avec sa valeur?
Sachant que ces valeurs sont separés par un ";"...il doit y avoir un moyen de lire valeur par valeur avec une boucle..? merci à tous :-)

procedure TForm1.Button1Click(Sender: TObject);
var Reg : TRegistry;
Tableau : Array[1..30]Of Byte;
i : Integer;
begin
// Tableau avec des valeur aléatoires pour démo
For i:=1 to 30 Do Tableau[i]:=Random(256);

// Ecriture du tableau dans la base de registre
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\REG_DEMO', True) then
Reg.WriteBinaryData('Valeur',Tableau,30);
finally
Reg.CloseKey;
Reg.Free;
end
end;

--- :sleepy) Nono du Moulin :sleepy) ---
0

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

Posez votre question
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
1 mai 2002 à 16:25
Par sécurité, puis-je me permettre de suggérer de remplacer :
Reg.WriteBinaryData('Valeur',Tableau,30);

par :
Reg.WriteBinaryData('Valeur',Tableau,SizeOf(Tableau));

C'est pour le cas où un jour tu changerais la taille du tableau mais pas la taille du buffer à écrire !

May Delphi be with you.
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
2 mai 2002 à 00:53
Pour DelphiProg : entierement d'accord, je le fait d'habitude mais là l'ai oublié...

Pour crogger : il ne faut bien sur pas mettre des valeurs aleatoires, tu dois remplir le tableau avec les valeurs que tu as. Si elles sont sous forme d'une chaine, il faut les convertir avec les fonctions ad-hoc.

--- :sleepy) Nono du Moulin :sleepy) ---
0
Rejoignez-nous