Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 48 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Lire un fichier txt ligne à ligne et copier les elts dans une combo

 
n°13687
ramos
Qui s'y frotte s'y pique!!!
Profil : Jeune recrue
Posté le 14-06-2005 à 10:30:25  profilanswer
 

Salut à tous, j'ai un problème avec la copie de données provenant d'un fichier texte dans une combo. Voila mon code :
 

Code :
  1. std::ifstream fichier( "monfichier.txt" );
  2.      if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
  3.     {
  4.         std::string ligne; // variable contenant chaque ligne lue
  5.         // cette boucle s'arrête dès qu'une erreur de lecture survient
  6.         while ( std::getline( fichier, ligne ) )
  7.         {
  8.             // ajoute une ligne du fichier "Clients.txt" dans la Combo
  9.    SendDlgItemMessage(Combo1,CB_ADDSTRING,0,(LPARAM)ligne);
  10.         }
  11.     }
  12. else
  13. {
  14.   AfxMessageBox("Erreur" );
  15.         return;
  16. }



Le problème est que je n'arrive pas à convertir les données provenant du fichier texte vers un élément de la Combo, voici l'erreur générée :  
 
error C2440: 'type cast' : cannot convert from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'long'
 
Je sais que c'est une histoire de conversion mais je n'arrive pas à résoudre ce problème.....................Merci d'avance

 


---------------
Les politiciens, c'est comme les couches des bébés; il faut les changer régulièrement, et ce, pour les mêmes raisons !
n°13689
ramos
Qui s'y frotte s'y pique!!!
Profil : Jeune recrue
Posté le 14-06-2005 à 11:08:47  profilanswer
 

Je crois que je vais me répondre à moi même puisque personne ne se manifeste. Et bien il fallait utiliser :  
 

Code :
  1. SendDlgItemMessage(Combo1,CB_ADDSTRING,0,(LPARAM)ligne.c_str);


 
au lieu de
 

Code :
  1. SendDlgItemMessage(Combo1,CB_ADDSTRING,0,(LPARAM)ligne);


 
 
Voila, a bientot!!!


---------------
Les politiciens, c'est comme les couches des bébés; il faut les changer régulièrement, et ce, pour les mêmes raisons !
n°14206
POO
Profil : Jeune recrue
Posté le 19-07-2005 à 02:41:44  profilanswer
 

lol jte répond :  
 
Crois moi que pour ton expérience personelle, c'est bien de trouver soi-même son erreur ;)

n°14653
Hylvenir
Profil : Jeune recrue
Posté le 22-08-2005 à 21:15:21  profilanswer
 

Salut,
une petite remarque,  
c'est à mon sens plus simple à lire en rapprochant le message d'erreur du code l'ayant déclenché, et ça évite des indentations superflus.
Juste pour chipoter ;)


Aller à :
Ajouter une réponse