Convertion String en char en .NET

Signaler
Messages postés
5
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 février 2006
-
Messages postés
5
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 février 2006
-
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

Messages postés
5
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 février 2006

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 *'
Messages postés
58
Date d'inscription
mardi 6 janvier 2004
Statut
Membre
Dernière intervention
13 juillet 2007

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 !!!!
Messages postés
5
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
3 février 2006

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