IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Affichage de données dans une ListCtrl


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Par défaut Affichage de données dans une ListCtrl
    Bonjour à toutes et à tous,
    ce post fait suite à un précédent post "lecture d'un fichier" qui a été résolu (pour ceux que cela intérésse).
    Je souhaiterais afficher des données récupérées à partir d'un fichier au format CSV dans une ListCtrl.
    Je m'explique :
    à la base je disposait d'un fichier contenant des chiffres séparés par un ; que j'ai réussi à lire grâce à la méthode strtok.
    Maintenant que j'arrive à lire ces données je souhaiterai les afficher dans ma listctrl qui posséde 9 colonnes et un grand nombre de ligne.
    Voici le code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    bool CChargementBoiteAntenneEtAntenneDlg::loadBA(CString strFileBA)
    {
    // Partie concernant la lecture du fichier et la séparation ;
    	bool b_result = true;
     
    	char * format = strFileBA.GetBuffer(9);
    	char seps[]   = ";";
    	char *token;
     
    	/* Establish string and get the first token: */
    	token = strtok( format, seps );
    	while( token != NULL )
    	{
    		 /* While there are tokens in "string" */
    		 printf( " %s\n", token );
    		 /* Get next token: */
    		 token = strtok( NULL, seps );
    	}
     
     
    // Partie concernant l'affichage dans la ListCtrl
     
    	double freq,imped1,adapt1;
    	double imped2,adapt2;
     
    	m_list_carac_boite_antenne.DeleteAllItems();
     
    	CStdioFile file;
    	if(!file.Open((LPCTSTR)strFileBA,CFile::modeRead))
    	{
    		AfxMessageBox("impossible d'ouvrir le fichier "+strFileBA);
    		return false;
    	}
     
    	else
    		while (file.ReadString (strFileBA))
    		{
    				strFileBA.Format("%1.lf",freq);
    				m_list_carac_boite_antenne.InsertItem(m_list_carac_boite_antenne.GetItemCount(),strFileBA);
    				strFileBA.Format("%1.4lf",imped1);
    				m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,1,strFileBA);
    				strFileBA.Format("%1.3lf",adapt1);
    				m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,2,strFileBA);
    				strFileBA.Format("%1.4lf",imped2);
    				m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,3,strFileBA);
    				strFileBA.Format("%1.3lf",adapt2);
    				m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,4,strFileBA);
    		}
     
    	return b_result;
    }
    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Peut-être quelques éléments de réponse sur le post suivant : http://www.developpez.net/forums/d73...r-fichier-csv/

  3. #3
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    remplir une ListCtrl voir faq: http://cpp.developpez.com/faq/vc/?pa...trlInitAndFill

  4. #4
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Par défaut
    Bon j'ai essayé de suivre vos conseils, mais j'avoue que je n'ais pas réussit à arriver à mes fins.
    J'ai repris le code pour remplir un ComboBox en l'adaptant quelque peu mais sans succès.

    Pour le moment le code que j'ai tappé ne donne rien, lorsque j'execute mon programme il ne se passe rien du tout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    bool CChargementBoiteAntenneEtAntenneDlg::loadBA(CString strFileBA)
    {
    	bool b_result = true;
     
    	char * format = strFileBA.GetBuffer(9);
    	char seps[]   = ";";
    	char *token;
     
    	/* Establish string and get the first token: */
    	token = strtok( format, seps );
    	while( token != NULL )
    	{
    		 /* While there are tokens in "string" */
    		 printf( " %s\n", token );
    		 /* Get next token: */
    		 token = strtok( NULL, seps );
    	}
     
    	double freq,imped1,adapt1;
    	double imped2,adapt2;
     
    	CString temp;
     
    	CWinApp * theApp = AfxGetApp();
    	if(theApp)
    	{
      		temp = theApp->GetProfileString("CSV_DELIMITERS","DELIM",";");
    		seps[9] = temp.GetAt(0);
    	}
     
    	m_list_carac_boite_antenne.DeleteAllItems();
     
    	CStdioFile file;
    	if(!file.Open((LPCTSTR)strFileBA,CFile::modeRead))
    	{
    		AfxMessageBox("impossible d'ouvrir le fichier "+strFileBA);
    		return false;
    	}
    	while (file.ReadString(strFileBA))
    	{ 
    		if (sscanf(format,seps,&freq,&imped1,&adapt1,&imped2,&adapt2))
    		{
     
    		temp.Format("%1.lf",freq);
    		m_list_carac_boite_antenne.InsertItem(m_list_carac_boite_antenne.GetItemCount(),temp);
    		temp.Format("%1.4lf",imped1);
    		m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,1,temp);
    		temp.Format("%1.3lf",adapt1);
    		m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,2,temp);
    		temp.Format("%1.4lf",imped2);
    		m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,3,temp);
    		temp.Format("%1.3lf",adapt2);
    		m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,4,temp);
    		}
    	}
    	return b_result;
    }
    HELP ME PLEASE!

  5. #5
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Commence par vérifier ce que contient ta variable token, car après un rapide coup d'œil j'ai l'impression que ça vient de là ...

  6. #6
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 35
    Par défaut
    Je ne comprends pas pourquoi le problème viendrait de ma variable, j'ai suivit à la lettre l'exemple du lien que tu m'avait donné.

    En ce qui me concerne, je pense que le problème serait plutôt localisé du côté du sscanf. Mais je ne vois pas vraiment quoi changer pour que cela fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affichage des donnes dans une datagridview
    Par daloul dans le forum VB.NET
    Réponses: 1
    Dernier message: 25/04/2008, 08h04
  2. Réponses: 3
    Dernier message: 11/10/2007, 12h18
  3. limite de l'affichage des donnés dans une Bdgrid
    Par helmis dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/07/2006, 09h15
  4. affichage de données dans une zone de texte
    Par Lamie dans le forum Access
    Réponses: 2
    Dernier message: 06/07/2006, 15h31
  5. Affichage de donnée dans une page
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 21/02/2006, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo