Developpez.com - Delphi
X

Choisissez d'abord la catégorieensuite la rubrique :

Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES TESTS DELPHI WIN32 AUTOMATISMES DELPHI .NET QUICK-REPORT
Retour à l'accueil
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    : Array Of 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
  Then Begin
    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 Then Begin Valeurs.Add(Chaine);Chaine:='';End
                  Else Chaine:=Chaine+Char(Buf[i]);
    End;
    Buf:=Nil;
  End;
End;

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -