Convertion String en char en .NET

cs_TALU3000 Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 février 2006 - 28 janv. 2006 à 17:43
cs_TALU3000 Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 février 2006 - 3 févr. 2006 à 14:09
Voila j'ai un prob dans mon programme en .NET je veux convertir un String en char. Mon programme se compile correctement mais lorsque je l'execute il plante et je sais que ça vien de la ligne que j'ai mise en gras. Mon code se trouve dans un bouton.

String *param;
param = TextHost->Text;
char buf = Convert::ToChar(param);

Lorsque je lance mon programme et que je clike sur les bouton concerné je recoi ce message d'erreur:

Merci de votre futur aide ;-)

3 réponses

cs_TALU3000 Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 février 2006
28 janv. 2006 à 17:55
je rectifie qu'il s'agit de chaine de caractere et non d'un unique caractere
Je ve donc transformer mon String en char *

String *param;
param = TextHost->Text;
char * buf = Convert::ToChar(param);

cela ne compile pas l'erreur est:
error C2440: 'initialisation' : impossible de convertir de '__wchar_t' en 'char *'
0
cs_lacousine Messages postés 58 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 13 juillet 2007
3 févr. 2006 à 04:17
essaye quelque chose du style :

String *param 
= new String ( TextHost->Text
 );

// Connaître le nombre de caractères dans la chaîne .NET
const int TAILLE_CHAINE_NET = param 
->get_Length ();

// Copier les caractères de la chaîne .NET originale à la chaîne
// standard (l'opérateur += insère à la fin de la chaîne). Si nous
// avions utilisé une std::wstring, la conversion explicite de type
// (le static_cast<>) aurait &#233;t&#233; &#233;vit&#233;e.
std::string sStd;
for (int i = 0; i < TAILLE_CHAINE_NET; i++)
   sStd += static_cast<char> (param 
->get_Chars (i));

// Bingo!
std::cout << sStd << std::endl;


et ca :

std::wstring sStd = L"allo standard"; // essaye avec TextHost->Text


String *param 
= new String(sStd.c_str ());

// Re-bingo!
Console::WriteLine(param 
);


hummm je crois ne pas avoir répondu à ta question, mais tu as la conversion pour la String* en string et vise versa.

Mieux vaut être blonde et poser des questions que de rester ignorante !!!!
0
cs_TALU3000 Messages postés 5 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 février 2006
3 févr. 2006 à 14:09
j'ai trouvé comment faire ça faisait longtemps que j'avais posé cette question. J'ai fais comme ça :


String *param;



// ici de rempli mon String de mes valeur

string tram(param->Length, 0);


for(
int i=0; iLength; i++)


tram[i] = (
char)(param->get_Chars(i));

//ensuite si jfai une messagebox le contenu s'affiche bien:


MessageBox(0,tram.c_str(),"tram envoyé",0);

Merci encore de ta rep lacousine ça fait plaisir. Surtout que tu peux voir la tete que je tire quand je fais du c++ et que ça marche pas comme je veux. ( regarde mon avatar ) lol


allez ++ ;-) ctrl + alt +B -> good to go
0