begin process at 2012 05 29 16:57:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

MFC

 > 

problème d'écrasement de données lors d'un remplissage de ListBox


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

problème d'écrasement de données lors d'un remplissage de ListBox

jeudi 10 mai 2007 à 14:42:42 | problème d'écrasement de données lors d'un remplissage de ListBox

Loki6

Membre Club
Salut à tous,

alors voilà mon problème du jour :

dans mon projet actuel, j'ai un tableau de char ** contenant une sorte de liste de phrases. je désire afficher cette liste dans une listbox MFC.
our cela j'ai une boucle for avec un addstring qui tape dans chaque ligne de mon tableau comme ceci :
for (int i=0;i<m_iCtnLineNr;i++)
    m_lbFileContent.AddString(CString(m_cContent[i]));

Avant l'exécution de la boucle mon tableau contient les valeurs suivantes :
m_cContent[0] = "ceci est un essai daffichage d'un texte contenu dans un fichier ini."
m_cContent[1] = "ce programme ne fait rien d'autre"
m_cContent[2] = "............etc...."
Ensuite je poursuis l'exécution. Et bizarrement, lorsque le curseur quitte la ligne de AddString, il se passe ceci :
m_cContent[0] = "ceci est un essai daffichage d'un texte contenu dans un fichier ini."
m_cContent[1] = "�17;X¨ *avec ici un petit carré qui ne veut pas apparaitre comme dans Visual* "
m_cContent[2] = "............etc...."
Et le pire c'est que si je continue le déroulement de l'application, mes autres valeurs ne bougent pas.

je ne comprend pas comment ça peut arriver... un même espace serait-il alloué deux fois ?

si la même question avait été résolue sur le forum sans que je la vois, ayez l'obligeance de me filer l'adresse svp.

pour si nécessaire voilà l'allocation de mon tableau, classique... :
    m_cContent = new char * [nbligne];
  for (int j=0;j<nbligne;j++)
      m_cContent[j] = new char [255];

et les déclaration et utilisation de ma variable de ListBox, classique aussi... :
CListBox m_lbFileContent;
m_lbFileContent.ResetContent();
merci d'avance pour votre aide.

Loki
vendredi 11 mai 2007 à 08:43:49 | Re : problème d'écrasement de données lors d'un remplissage de ListBox

louis14

le petit carré correspond à un caractère non affichable dans une listbox ( CR, LF ou autres caractères). Je pense qu'il doit te manquer un zéro terminal dans une des tes string ou un dépassement de taille du tableau.
Pourquoi ne fais-tu pas simplement un tableau de string afin de ne pas avoir à règler le problème du zéro terminal.

louis14
vendredi 11 mai 2007 à 16:49:12 | Re : problème d'écrasement de données lors d'un remplissage de ListBox

Loki6

Membre Club
le zéro terminal est automatiquement généré lors de la création de chaines de caractères...

mais je ne suis pas sur que tu ais bien compris mon problème. mon tableau de chaines va nickel.
le problème est que lorsque je stocke ma chaine m_cContent[0] dans la listbox au moyen de AddString(), ma chaine m_cContent[1] est écrasée par je ne sais quel moyen lors de l'appel de AddString(), alors que lorque j'ajoute m_cContent[1], m_cContent[2] est laissé en paix de même que m_cContent[3] avec m_cContent[2] etc...

C'est bizarre car normalement AddString ne modifie pas le paramètre qui lui est mis.

merci quand même pour ta réponse. si tu as d'autres suggestions n'hésite pas de même que les nombreux autres visualisateurs qui ne se sont pas risqués à un commentaire :p


Loki
samedi 12 mai 2007 à 09:16:27 | Re : problème d'écrasement de données lors d'un remplissage de ListBox

louis14

essaie de faire ceci pour décomposer la fonction et vérifier en mode debug les strings :
CString str;
for(i= ...)
{
str = m_cContent[i], //point de debug ici pour vérifier la valeur de str
m_lb>FileContentAddstring(str);
}



louis14

samedi 12 mai 2007 à 09:17:48 | Re : problème d'écrasement de données lors d'un remplissage de ListBox

louis14

tu peux aussi en débuguant voir la valeur du caractère

louis14
dimanche 13 mai 2007 à 20:30:54 | Re : problème d'écrasement de données lors d'un remplissage de ListBox

Loki6

Membre Club
j'essaierai ta solution lundi louis14, car j'ai pas le projet chez moi.

pour ce qui est de voir les valeurs en debug c'est de cette manière que je me suis aperçu qu'une de mes chaines se transformait lors de l'export d'une autre.

Loki


Cette discussion est classée dans : problème, listbox, tableau, char, ccontent


Répondre à ce message

Sujets en rapport avec ce message

Problème de tableau ! [ par Xentor ] Bonjour,Je voudrais déclarer un tableau de caractères en variable générale et pouvoir modifier sa taille dans une fonction !Exemple (écrit en direct, recuperer les valeurs de TEdit dans un tableau de char [ par ferrari ] Voici la partie de mon code je cree des TEdit de manieres dynamiques de la maniere suivante. TEdit **b; //declare en global dans le .h de ma classe b problème de lecture en c++ sous vc++6 [ par os22 ] j'essaie de lire un fichier ayant le contenu suivantmarc;collin;4506777228;906 boule;longueuil;j4j1t5;qc;14;allo;roger;dumais;5413432128;1150 dumahel; problème tout bête [ par Raoul12 ] voilà, je débute dans le c++ et je voudrais faire ça:char hohun[32] ;hohun = "hohun" ;mais ça ne marche pas... pourtant si je fais ça:char hohun[32] = problème [ par Raoul12 ] voilà, je débute dans le c++ et je voudrais faire ça:char hohun[32] ;hohun = "hohun" ;mais ça ne marche pas... pourtant si je fais ça:char hohun[32] = Tableau de char* [ par alex1er ] Salut a tousJ'aimerais faire la déclaration suivante dans mon code : char * swSurface[]; //Tableau de char * doncSeulement, le compilo me jete car le tableau [ par zeratul67 ] J'ai une fonction qui doit me renvoyer un tableau à deux dimensions, mais la taille de l'une des ces 2 dimensions est inconue. (tableau: char cp[x][25 tableau char [ par dingue007 ] Voila je dois faire un prog en C++ : un tableau avec les mois de lannée et quand je tape un chiffre il me sort le mois ! mais je narrive pas a faire l Problème de tableau sans solution? [ par PsyCaDi ] renvoie d'un tableau en char ds une fonction [ par TheBabyCool ] Comment peut on renvoyer un tableau de char du type :char i[][] dans une fonction ?Merci


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,780 sec (3)

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