begin process at 2010 02 10 06:29:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

.NET

 > 

Bug? dans la convertion byte[] -> String


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Bug? dans la convertion byte[] -> String

lundi 17 novembre 2003 à 22:26:52 | Bug? dans la convertion byte[] -> String

welc

Hello,

Suite à mon dernier messge, j'ai enfin trouvé tous seule la solution à mon probléme.
Je dis bug, mais je suis loin d'avoir le niveau de juger si c'est un bug ou pas.

Dans tous les cas j'expose mon probléme avec la solution, au cas ou d'autre personne on le même prob.

-----

Quand vous faite appel à des API windows, il arrive que certaine fonction, dans leur argument renvoit une adresse dune chaîne de caractére codé sur un octet (jme tompe ?). Par exemple :
SHGetPathFromIDList de l'api windows.

Donc si c'est codé sur un octet, déclarons un tableau de byte. Ici l'api SHGetPathFromIDList nous indique que le talbeau renvoyé sera de 260 entités.

byte[] MaChaine = new byte[260]

Une fois les donnés récupéré, dans MaChaine[], vous allez vouloir surement convertir en String :

String MaString = System.Text.Encoding.Default.GetString(MaChaine);

Et arrive une chose des plus étranges.

Si vous faite par exemple afficher le contenu de la string dans une TextBox, ce la marche parfaitement.
Si vous essayé de l'afficher en console cela marche super aussi :

// On va dire que MaChaine = "c:\toto"
// Convertie en String, cela donne logiquement MaString="c:\toto"

WriteLine(MaString);

Cela renvoit chez moi :
c:\totoLe programme '[3720] UnProg.exe' s'est arrêté avec le code 0 (0x0).

Super cool, ça marche bien tous ça !
Et pourtant si vous faite MaString.Length, cela donne 260.
String.Length = "Nombre de caractères dans cette instance."

Vous me direz, car la fin est remplit d'espace, mais mon exemple de sortie en console montre bien le contraire.

En faite c'est les foutu caractéres "null" qui était dans le byte qui mette la chianlit.

Pour remédier à cela, il faut convertire ainsi :
String MaString = System.Text.Encoding.Default.GetString(MaChaine)..TrimEnd((char)0);

mercredi 19 novembre 2003 à 00:21:44 | Re : Bug? dans la convertion byte[] -> String

gg00xiv

Bon, elle est ou la question ? j'ai rien capter a ton post
mercredi 19 novembre 2003 à 00:29:55 | Re : Bug? dans la convertion byte[] -> String

welc

Quelque post avant celuila,
la c'est juste la soluce que j'ai trouvé
vendredi 25 avril 2008 à 12:31:58 | Re : Bug? dans la convertion byte[] -> String

Liverion

Sinon tu utilises

String MaString = BitConverter.toString(MaChaine);


Cette discussion est classée dans : string, bug, byte, machaine, mastring


Répondre à ce message

Sujets en rapport avec ce message

Prise de tête avec ToString [ par Wolf ] COMMENT FAIRE POUR TRANSFORMER UN TABLEAU DE BYTE EN STRING????????????????Mes murs commence à s'écrouler à force de me tapper la tête dedans!Voilà 2 conversion string en int, byte, hexa [ par vinc524 ] C#bonjour, je cherche désespérémment un moyen pour convertir une chaine de caractere string en hexadecimal. En fait je voudrais le code ascii d'un car Conversion de string en byte [ par moihenry ] Voila mon problème j'ai besoin de cette commande ="ÿÿÿÿgetstatus"mais quand je fais :byte[] byt = new byte[1024];byt = System.Text.Encoding.ASCII.GetB Conversion de string ou de byte[] en object[] (ArrayLit) [ par matdakillah ] Bonjour a tous.Je cherche à transformer des données de type byte[] et/ou string en ArrayList.J'ai tester toutes ces solutions mais aucune ne fonctionn Problème chaine de caractère [ par Globinours ] Voilà j'ai un petit problème je voudrais faire : string machaine; puis utiliser @machaine; Mais ça marche pas comme ça devrait marcher. Par exemple: Souci de conversion String -> Byte[] [ par azull ] Bonjour,Voila mon probleme, pour un soucie d'encription je stoque dans une base de donnée ( de type MSSQL 2005 ) un champ numerique ( ce champ et enco MD5 [ par zatt ] Bonjour,j'essaie d'obtenir un hash md5 à partir de cette méthode :publicstatic<f probleme de conversion byte[] en string [ par qaiden ] Bonjour,le probleme est le suivant:Je dois envoyer des donnees venant d une base de donne sur le reseau, j ai decider d envoyer la taille maximale a c Bug erreur StackOverflowException [ par shinux ] j'ai un bug dans mon application il s'agit d'un StackOverflowException le bug ce produit sur cette ligne de code :if (!SQLdata.SQLCheckparsed(url) && Byte[] to String [ par SoyYo ] Salut En fait j'ai un probleme de convertion d'un Byte[] vers un String. J'ai tout essaye Text.Encoding.ASCII .... et Convert.FromBase64String et a ch


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales