crogger
Messages postés32Date d'inscriptionvendredi 5 avril 2002StatutMembreDernière intervention23 octobre 2006
-
30 avril 2002 à 11:37
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 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........??
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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;
crogger
Messages postés32Date d'inscriptionvendredi 5 avril 2002StatutMembreDernière intervention23 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) ---
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 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.