Accueil > Forum > > > > fichier txt vers ListCtrl
fichier txt vers ListCtrl
mardi 5 mai 2009 à 14:31:58 |
fichier txt vers ListCtrl

gregdu80
|
Bonjour à tous et à toutes,
dans le cadre de mon stage, je doit lire un fichier au format csv et récupérer les données afin de les afficher dans une ListCtrl sous visual C++ 6.
Le problème se trouve dans le fait que le fichier contient 9 colonnes et une centaine de ligne, et que le code que j'ai tapé me permet de lire uniquement les deux premières colonnes (sur toutes les lignes) du fichier csv.
Voici le code correspondant :
bool b_result = true;
char format[7];
CString str,str_tmp;
char delim = ';';
double freq,imped1,adapt1,imped2,adapt2;
m_list_carac_boite_antenne.DeleteAllItems();
CWinApp * theApp = AfxGetApp();
if(theApp)
{
str_tmp = theApp->GetProfileString("SEPARATEURS_CSV","CHAMP",";");
delim = str_tmp.GetAt(0);
}
sprintf(format,"%s%c%s","%lf",delim,"%lf");
CStdioFile fileBA;
if(!fileBA.Open((LPCTSTR)strFileBA,CFile::modeRead))
{
AfxMessageBox("impossible d'ouvrir le fichier "+strFileBA);
return false;
}
else
{
while(fileBA.ReadString(str))
{
if(sscanf((LPCTSTR)str,format,&freq,&imped1,&adapt1,&imped2,&adapt2) == 2)
{
str_tmp.Format("%1.lf",freq);
m_list_carac_boite_antenne.InsertItem(m_list_carac_boite_antenne.GetItemCount(),str_tmp);
str_tmp.Format("%1.4lf",imped1);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,1,str_tmp);
str_tmp.Format("%1.3lf",adapt1);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 2,2,str_tmp);
str_tmp.Format("%1.4lf",imped2);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 3,3,str_tmp);
str_tmp.Format("%1.3lf",adapt2);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 4,4,str_tmp);
}
}
fileBA.Close();
}
return b_result;
}
Voilà si quelqu'un peut voler à mon secours, cela serait vraiment super!!
Merci
|
|
jeudi 14 mai 2009 à 19:05:12 |
Re : fichier txt vers ListCtrl
|
vendredi 15 mai 2009 à 09:39:59 |
Re : fichier txt vers ListCtrl

gregdu80
|
Oui je sais mais comme je n'avais pas de réponse je postait ma question différemment. Désolé.
Et bien en fait je pense que mon sscanf et fait pour ne lire que les deux premières colennes de mon fichier, or, il faudrait que je puisse lire chaque ligne et chaque colonne.
Pour précision mon fichier contient 9 colonnes, chaque valeur est séparé par un ";".
J'espére avoir été plus clair...
|
|
vendredi 15 mai 2009 à 11:44:08 |
Re : fichier txt vers ListCtrl
|
vendredi 15 mai 2009 à 13:17:10 |
Re : fichier txt vers ListCtrl

gregdu80
|
Oui j'ai déjà essayé de modifier mon sscanf, mais lorsque je mets une autre valeur que 2 ca ne fonctionne pas. Le seul moyen d'avoir quelque chose est de mettre ==2 ou rien du tout...
Cela reste un mystère pour moi!!
|
|
vendredi 15 mai 2009 à 14:38:28 |
Re : fichier txt vers ListCtrl
|
vendredi 15 mai 2009 à 14:59:41 |
Re : fichier txt vers ListCtrl

gregdu80
|
Le bout de code plus haut était juste un test pour voir si je pouvais le faire sur moins de valeurs...
J'ai essayé ce que tu m'as dit, mais j'ai pas l'impression que le problème vienne de là puisque ca ne fonctionne toujours pas...
bool CChargementBoiteAntenneEtAntenneDlg::loadBA(CString strFileBA)
{
bool b_result = true;
char format[9];
CString str,str_tmp;
char delim = ';';
double freq,imped1,adapt1;
double imped2,adapt2;
double imped3,adapt3;
double imped4,adapt4;
m_list_carac_boite_antenne.DeleteAllItems();
CWinApp * theApp = AfxGetApp();
if(theApp)
{
str_tmp = theApp->GetProfileString("CSV_DELIMITERS","DELIM",";");
delim = str_tmp.GetAt(0);
}
sprintf(format,"%s%c%s","%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf");
CStdioFile file;
if(!file.Open((LPCTSTR)strFileBA,CFile::modeRead))
{
AfxMessageBox("impossible d'ouvrir le fichier "+strFileBA);
return false;
}
else
{
while(file.ReadString(str))
{
if (sscanf((LPCTSTR)str,format,&freq,&imped1,&adapt1,&imped2,&adapt2,&imped3,&adapt3,&imped4,&adapt4))
{
str_tmp.Format("%1.lf",freq);
m_list_carac_boite_antenne.InsertItem(m_list_carac_boite_antenne.GetItemCount(),str_tmp);
str_tmp.Format("%1.4lf",imped1);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,1,str_tmp);
str_tmp.Format("%1.3lf",adapt1);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,2,str_tmp);
str_tmp.Format("%1.4lf",imped2);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,3,str_tmp);
str_tmp.Format("%1.3lf",adapt2);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,4,str_tmp);
str_tmp.Format("%1.4lf",imped3);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,5,str_tmp);
str_tmp.Format("%1.3lf",adapt3);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,6,str_tmp);
str_tmp.Format("%1.4lf",imped4);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,7,str_tmp);
str_tmp.Format("%1.3lf",adapt4);
m_list_carac_boite_antenne.SetItemText(m_list_carac_boite_antenne.GetItemCount() - 1,8,str_tmp);
}
}
file.Close();
}
return b_result;
}
Est-ce que le problème ne viendrait pas de la partie %s%c%s ?
|
|
vendredi 15 mai 2009 à 15:15:33 |
Re : fichier txt vers ListCtrl

rt15
|
Réponse acceptée !
Vi tout à fait cela vient de là. Faut que tu te tapes %s%c%s%c...  Pour info, tu as l'aide de toutes les fonctions vraiment standards y compris sprintf, sur ce site.
|
|
vendredi 15 mai 2009 à 15:48:03 |
Re : fichier txt vers ListCtrl

gregdu80
|
Bon et bien j'ai tappé ceci dans mon sprintf :
sprintf(format,"%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s","%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf",delim,"%lf");
mais ca ne fonctionne toujours pas...
Je ne comprends pas pourquoi...
|
|
vendredi 15 mai 2009 à 16:21:04 |
Re : fichier txt vers ListCtrl

gregdu80
|
Bon en fait c'est bon a priori le problème venait de format[9] il suffisait juste de l'augmenter pour que ca fonctionne.
Je te remercie tu as trouvé la solution à mon problème que je trainais depuis un bon moment
|
|
Cette discussion est classée dans : boite, str, list, tmp, carac
Répondre à ce message
Sujets en rapport avec ce message
problème CListBox [ par snakeissat ]
salut, j'ai un problème avec CListBox, en faite je veut y afficher le contenu d'un fichier. l'affichage s'effectue sauf qu'à la fin de chaque ligne u
Problème avec une listview gtk+ [ par MorbhAck ]
Bonsoir tout le monde !J'ai ptit souci avec gtkJ'ai une fonction qui ajoute une ligne dans un listview qui estsimilaire à celle-ci:void add_str_listvi
Selection multi fichier boite de dialogue [ par DarkBoss ]
Salut,j' ouvre la boite de dialogue win pour ouvrir les fichier et on peux selectionner plusieur fichier,ce que je voudrai c' est que l' on puisse rec
encore desole mais toujours pas de reponse.... :( [ par DevGizmo ]
Bonjour,Encore desole de revenir avec mon probleme mais je n'ai pas d'issue. En effet, je cherche a lire ligne par ligne mon tableau 2D avec un pointe
question de c....merci de repondre, c'est urgent svp.... [ par DevGizmo ]
Bonjour,Encore desole de revenir avec mon probleme mais je n'ai pas d'issue. En effet, je cherche a lire ligne par ligne mon tableau 2D avec un pointe
info-bulle [ par ludo_it ]
Salutj'ai un projet avec une CFormView, j'ai créé une boite de dialogue avec des editboxs , lesquelles possèdent des variables membres de type CEdit,
une boite de dialogue dans un .dll? [ par catamenia ]
bonjours, j'aimerais savoir si il est possible de créer une boite de dialogue dans un .dll.Je n'ai aucun probleme un ajouter une boite de dialogue lor
Scroll bar horizontal dans une list box [ par maxpog23 ]
Salut,Je developpe une appli WIN32 et jai un ptit pb:Est-ce que qqun peut me dire pourquoi la scrollbar horizontal n'apparait pas quand un element de
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|