Affichage code binaire [Résolu]

Messages postés
71
Date d'inscription
mardi 20 décembre 2005
Dernière intervention
13 décembre 2008
- - Dernière réponse : Francks11
Messages postés
71
Date d'inscription
mardi 20 décembre 2005
Dernière intervention
13 décembre 2008
- 30 oct. 2007 à 13:15
Bonjour,


Voila mon problème :


Dans l'active directory, j'aimerai récuperer le objectSid qui est un attribut binaire.
Le contenu du champ est de cette forme : 01  06  00  00  00  00  00  05  14  00  00  00  73  4C  0E  08


Donc je recupere l'information objectSid comme ceci.


DirEntry.Properties["objectSid"].Value;


Le problème est le fait, que lorsque je l'affichage, il m'affiche System.byte[].


Moi j'aimerai pouvoir récuperer le même code hexadecimal qu'au dessus, comment faire?


merci
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Dernière intervention
18 octobre 2008
6
3
Merci
Salut,
Essayes ça :

string hexa = string.Empty;
foreach (byte b in DirEntry.Properties["objectSid"].Value) // Parcours du tableau de byte
{
    // Convertit le byte en une chaîne en base 16.
    if (hexa.Length > 0)
        hexa += " " + Convert.ToString(b, 16);
    else

        hexa = Convert.ToString(b, 16);
}
// Affichage du résultat
Console.WriteLine(hexa);

Cordialement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 118 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_niky
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
en plus propre :

StringBuilder sb = new StringBuilder();
Array.ForEach( DirEntry.Properties["objectSid"].Value,
   delegate( byte b ) {
      sb.AppendFormat(" {0:00}");
   }
);

sb.ToString() donnera (normalement) "01  06  00  00  00  00  00  05  14  00  00  00  73  4C  0E  08"

je n'ai pas testé

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
65
0
Merci
Hello,

J'allais justement mettre une petite remarque à ce sujet, mais sebmafate m'a devancé.

Par contre, pour que ça fonctionne :

sb.AppendFormat(" {0:X2}",b);

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
54
0
Merci
oops... une erreur en effet...
mais plutot : sb.AppendFormat(" {0:00}",b);

car sinon, la chaine sera 0X01 0X06...

Merci pour la correction

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
65
0
Merci
Par contre, je maintiens mon X2, si on veux afficher 0E et non 14...

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
Messages postés
71
Date d'inscription
mardi 20 décembre 2005
Dernière intervention
13 décembre 2008
0
Merci
Ok merci, je me suis aidé de la première réponse.
Commenter la réponse de Francks11

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.