23 - LECTURE D'UN TYPE REG_MULTI_SZ AVEC UN TREGISTRY
PRÉSENTATION :
Procédure pour effectuer la lecture d'une valeur de type REG_MULTI_SZ.
ZIP :
-Pas de zip-
APERÇUS :
NOTES :
Ce n'est possible qu'en lecture car le TRegistry ne peut créer de valeur REG_MULTI_SZ. Mais c'est peut-être suffisant pour certains.
Je n'ai essayé que sous XP, (W95 W98 et WMe n'ont pas de valeurs de type REG_MULTI_SZ ) mais je pense que le fonctionnement est le même avec W2000.
CODE :
Procedure LectureREG_MULTI_SZ(Reg:TRegistry;Valeur:String;Valeurs:TStrings); Var Buf : ArrayOf Byte;
Taille : Integer;
i : Integer;
Chaine : String; Begin // On efface la liste
Valeurs.Clear; // On recherche la taille des données
Taille:=Reg.GetDataSize(Valeur); If Taille>0 ThenBegin
SetLength(Buf,Taille); // Lecture des valeurs sous forme binaire
Reg.ReadBinaryData(Valeur,buf[low(Buf)],Taille); // Conversion des chaines AZT multiples en TStrings
Chaine:=''; // Taille-2 au lieu de Taille-1 pour ignorer le double zéro final For i:=0 To Taille-2 Do Begin If Buf[i]=0 ThenBegin Valeurs.Add(Chaine);Chaine:='';End Else Chaine:=Chaine+Char(Buf[i]); End;
Buf:=Nil; End; End;