Prb listBox

anubis52100 Messages postés 44 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 22 janvier 2007 - 25 mars 2005 à 12:01
anubis52100 Messages postés 44 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 22 janvier 2007 - 28 mars 2005 à 11:52
Salut !
voila j'ai un fichier txt contenet des nom d'élève :
sou cette forma
pierre
paul
etc...
et je voudrai l'afficher dans une listBox


voila se ke j'ai esaisier mais sa marche pa quand j'exécute mn aplication MFC j'ai un message qui me dit que eleve.txt a un mauvais format.


/ SupresionEleveDlg.cpp : implementation file
//


#include "stdafx.h"
#include "a.h"
#include "SupresionEleveDlg.h"
#include "GestionEleve.h"
#include "Personne.h"
#include "SupresionEleveDlg.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


/////////////////////////////////////////////////////////////////////////////
// CSupresionEleveDlg dialog



CSupresionEleveDlg::CSupresionEleveDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSupresionEleveDlg::IDD, pParent)
{

//{{AFX_DATA_INIT(CSupresionEleveDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}



void CSupresionEleveDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSupresionEleveDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}



BEGIN_MESSAGE_MAP(CSupresionEleveDlg, CDialog)
//{{AFX_MSG_MAP(CSupresionEleveDlg)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3Quitter)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CSupresionEleveDlg message handlers


void CSupresionEleveDlg::OnButton3Quitter()
{
// TODO: Add your control notification handler code here
OnOK();

}


BOOL CSupresionEleveDlg::OnInitDialog()
{
CDialog::OnInitDialog();


//m_TableauPersonnes.SetSize(0,100);


//int TabStop[] = {71,143};
// ((CListBox *)GetDlgItem(IDC_LIST1_SUPRESION_ELEVE))->SetTabStops(2,TabStop);

CFile FichierEleve;
if(!FichierEleve.Open("eleve.txt", CFile::modeRead))
{
//On affiche un message d'erreur
MessageBox("Erreur d'ouverture du fichier !!!", "Erreur de fichier", MB_ICONERROR);
return TRUE;
}
CArchive MonArchive(&FichierEleve,CArchive::load);
m_ListePersonnes.Serialize(MonArchive);
MonArchive.Close();
FichierEleve.Close();
//MetAJourListe();


// TODO: Add extra initialization here



return FALSE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}


void CSupresionEleveDlg::MetAJourListe()
{
//CString strnom;
//strnom="fr";
CListBox * pListBox = (CListBox *)GetDlgItem(IDC_LIST1_SUPRESION_ELEVE);
CString strLigne;
CGestionEleve *pEleve;


POSITION position = m_ListePersonnes.GetHeadPosition();


pListBox->ResetContent();


/*for(int i = 0 ; i < m_TableauPersonnes.GetSize() ; i++)
{
pEleve = (CGestionEleve *)m_TableauPersonnes[i];
strLigne.Format("%s\t", pEleve->GetNom());
pListBox->AddString(strLigne);
}*/


while(position)
{
pEleve = (CGestionEleve *)m_ListePersonnes.GetAt(position);
strLigne.Format("%s\n",pEleve->GetNom());
pListBox->AddString(strLigne);
m_ListePersonnes.GetNext(position);
}
CFile FichierEleve;
if(!FichierEleve.Open("eleve.txt", CFile::modeWrite | CFile::modeCreate ))
{
MessageBox("Erreur d'ouverture du fichier !!!", "Erreur de fichier", MB_ICONERROR);
return;
}
CArchive MonArchive(&FichierEleve, CArchive::store);


m_ListePersonnes.Serialize(MonArchive);
MonArchive.Close();
FichierEleve.Close();


}


// GestionEleve.cpp: implementation of the CGestionEleve class.
//
//////////////////////////////////////////////////////////////////////


#include "stdafx.h"
#include "a.h"
#include "GestionEleve.h"
#include "AjoutEleveDlg.h "
#include "SupresionProfDlg.h"
#include <windows.h>
#include


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////



CGestionEleve::CGestionEleve()
{


}
CGestionEleve::CGestionEleve(CString strNom)
{
m_strNom = strNom;
}
CGestionEleve::~CGestionEleve()
{


}
CString CGestionEleve::GetNom()
{
return m_strNom;
}
void CGestionEleve::AjoutEleve(CString strNom)
{


// ouvre ou créer le fichier eleve.txt


FILE* FichierEleve;
FichierEleve=fopen("eleve.txt","a");

// écrit le nom de l'élève dans le fichier eleve.txt
fprintf(FichierEleve,"Nom de l'élève: %s\n",strNom);


// ferme le fichier eleve.txt
fclose(FichierEleve);


//déclaration pour la création de répertoire
char* decoupage;
char temp[MAX_PATH];
char * chemin;


chemin = CStringToPtr( strNom );
if ( NULL == chemin )
{
// MessageBox("Vous avez oublié de saisir un nom",MB_OK);
return;
}


RtlZeroMemory(temp,MAX_PATH);
decoupage=strtok( chemin,"\");



strcat(temp,decoupage);
CreateDirectory(temp,NULL);
strcat(temp,"\");

delete [] chemin; // libère la mémoire à la fin





}


char * CGestionEleve::CStringToPtr(CString & cstring)
{
char * copy;
size_t length;


length = cstring.GetLength(); // récupère la taille de la chaine
copy = new char[ (length + 8) ]; // alloue de la mémoire(+8 c'est plus `safe`)


if ( NULL != copy ) // si aucune erreur
{
strcpy( copy, cstring.GetBuffer(0) ); // copie la chaine dans le nouvel espace mémoire
}


return copy; // renvoie la copie de la chaine contenue dans `cString`
// Renvoie NULL si problème/erreur/...





}
void CGestionEleve::Serialize(CArchive & MonArchive)
{
//Protection
CObject::Serialize(MonArchive);


//si j'enregistre
if(MonArchive.IsStoring())
//Ecriture sur le disque
MonArchive << m_strNom ;
else
//Lecture sur le disque
MonArchive >> m_strNom ;
}



merci

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 mars 2005 à 12:19
SVP, faut cesser de flooder ce forum en remettant 10 fois par jour le même post, je n'ai aucune envie d'arriver à des mesures plus expéditives alors ne pas m'y contraindre.

Tu peux très bien inclure la routine API de mon exemple dans ton prog sinon tu attendras que quelqu'un s'intéresse à MFC.

ciao...
BruNews, MVP VC++
0
anubis52100 Messages postés 44 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 22 janvier 2007
25 mars 2005 à 14:58
Bon ben c tout moi qui croyer que le but de se forum c'était de rep a des problème, si je pose autant foi ces question ces que j'ai 2semaine pour ke mon programe marche est si comme reponse je doit atendre ces sur que sa le fait pas pour moi dsl d'etre chiant mais je galère cherche juste de l'aide dsl de pa être un dieu du MFC ces tout merci quand même!
0
cleter Messages postés 92 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 15 mai 2006
25 mars 2005 à 17:24
C'est pas en postant 10fois qu'on va te repondre plus vite...

Et si ya pas de réponse, en général il n'ya pas 36solutions pour ton
cas: chercher dans le msdn.... Meme si je suis pas convaincu que tu y
trouve ta réponse....

Et perso, si une fonction marche pas, j'essaye autrement. alor plutot
que de vouloir a tout prit utiliser la méthode serialize, je serais toi
je ferai:

ouvrir fichier;



i=0;

CString nom;

tant que la fin du fichier n'a pa été détecter faire:

nom=lire la ieme ligne;

ajouter a la liste nom;

fin tant que;



(ouais je sais, c'est pas du code tout fait, mais la j'ais pa trop envi
de réfléchir, et jaime pas trop mettre du code si je l'ais pas testé)
0
anubis52100 Messages postés 44 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 22 janvier 2007
28 mars 2005 à 10:59
OK merci je vais esayer mais il éxite pas de forum spécial MFC car je trouve pas des super.

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 mars 2005 à 11:44
ici ils ne font que du MFC:
http://www.codeguru.com

ciao...
BruNews, MVP VC++
0
anubis52100 Messages postés 44 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 22 janvier 2007
28 mars 2005 à 11:52
merci!
0
Rejoignez-nous