thomas750
Messages postés17Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention 9 juillet 2008
-
8 mars 2008 à 15:13
soundofthunder
Messages postés3Date d'inscriptionlundi 1 mars 2010StatutMembreDernière intervention 1 mars 2010
-
6 sept. 2009 à 00:45
Bonjour à tous,
Voila, je debute en C#, et j'aurais besoin de convertir un tableau de byte en string (et inversement):
Pour la conversion byte --> string voici mon code :
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 8 mars 2008 à 15:35
Salut,
La représentation "System.Byte[]" dans le MessageBox est tout à fait normale vu que l'implémentation de la méthode ToString utilisée dans le code "MessageBox.Show("" + tt);" (au passage, beuark ! => MessageBox.Show(tt.ToString());) est celle de Object, qui justement ne fait que retourner le nom du type obtenu via RuntimeType.ToString()
thomas750
Messages postés17Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention 9 juillet 20082 8 mars 2008 à 20:13
Ok,merci pour cette precision, amis que dois je faire alors, car MessageBox.Show(tt.ToString()) me renvoi aussi "System.Byte[]"...et pour la conversion dans l'autre sens avez vous une idee...?
Merci bcp
cs_coq
Messages postés6350Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 8 mars 2008 à 21:50
Heu oui je n'ai jamais dit que ToString allait avoir un comportement différent mais que c'était cette méthode là qui était de toute façon utilisée par ton code.
Le MessageBox n'est à mon sens pas le meilleur moyen d'afficher le contenu d'un byte[], mais si tu le veux vraiment tu n'as d'autre choix que de batir ta chaine toi même .
Exemple vite fait (à afffiner et stabiliser) :
private String BuildByteArrayString(Byte[] array)
{
StringBuilder sb = new StringBuilder(array.Length * 8);
foreach (Byte currentByte in array)
{
sb.AppendFormat("[0x{0:X4}]", currentByte);
}
return sb.ToString();
}
Concernant le premier point je n'avais pas vu que c'était une question, et de toute façon je doute que MessageBox soit capable d'afficher les caractères que tu lui as donner, les 2 dernières doivent être imprimables dans la console mais les 2 premiers j'ai comme un doute vu qu'il s'agit de BS et BEL.
thomas750
Messages postés17Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention 9 juillet 20082 8 mars 2008 à 22:04
Ok, ca marche, merci beaucoup!
Pour le premier cas maintenant (conversion byte--> string) en fait je dois l'afficer dans une textBox...mais j'imagine que le probleme est le même que pour une MessageBox...?
Pouvez vous m'aider?
Merci bcp d'avance!
tomtom
Vous n’avez pas trouvé la réponse que vous recherchez ?
thomas750
Messages postés17Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention 9 juillet 20082 9 mars 2008 à 15:25
Bonjour,
En fait, pour la conversion byte--> string, si j'affiche dans une console, j'ai les bons "resultats" et pas des petits carrés, mais moi, je voudrai (je dois surtout) afficher ce resultat dans une textBox...Une idee?
Merci bcp!
thomas750
Messages postés17Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention 9 juillet 20082 9 mars 2008 à 17:11
Heuu...c'est-à-dire?
Pourrais tu me donner un exemple appliqué à mon pb si cela ne te derange pas, car je n'ai pas encore assez de "niveau" il me semble pour y arriver!
Merci d'avance
tomtom
Liverion
Messages postés296Date d'inscriptionmardi 22 avril 2008StatutMembreDernière intervention18 août 2008 23 avril 2008 à 16:56
Detrompes moi si je n'ai pas compris, pour ta conversion byte -> string
tu as un byte[] de ce type là par exemple : {00,A9,CD}
et tu veux obtenir une string : "00-A9-CD" (ou sans les tirets)
pour faire ca j'avais utilisé
private string[] getByteStringFromByteArray(byte[] value)
{
// Conversion of the byte array to a string
String infos = BitConverter.ToString(value);
// a char array to use the "-" caracter as a separator
char[] tiret = new char[1];
tiret[0] = '-';
return infos.Split(tiret);
}
dans ma fonction, ma String "infos" a donc la forme que j'ai montrée un peu plus haut, et je retourne un tableau de string du type {"00","A9",CD"}
soundofthunder
Messages postés3Date d'inscriptionlundi 1 mars 2010StatutMembreDernière intervention 1 mars 2010 6 sept. 2009 à 00:45
Bonjour
J'ai un petit souçi et je voudrais avoir votre avis.
Je dois récupérer la mac adresse d'un terminal qui a un OS Windows Mobile 6.1.
Le fabricant me met à disposition une référence .net que j'importe sans problème.
Mon problème est le suivant:
- Le fabricant me donne la doc suivante:
GetMac (C++)
Gets the radio's MAC address. You must call RadioConnect before calling this function.
UINT GetMac(TCHAR *MACaddress );
Parameters
MACaddress
Pointer to a TCHAR array indicating the MAC address of the radio (xx-xx-xx-xx-xx-xx).
TCHAR n'existant pas sous visual c#, j'ai donc traduit comme suit:
byte[] our_mac = new byte[128];
uint i;
string s;
l'appel de la fonction: et j'ai utilisé vos recommandations dans ce topics:
i = WLAN80211API_v3.GetMac(our_mac);
String infos = BitConverter.ToString(our_mac);
char[] tiret = new char[1];
tiret[0] = '-';
return infos.Split(tiret);