[C++] Afficher le contenu d'un fichier dans un listBox
1 réponse
Khaoula Bouazizi
Bonjour,
Je souhaite d=E9velopper une interface graphique qui permet de parcourir
des fichiers et de les afficher, voici ma maquette initiale :
http://cjoint.com/data/knpF4Wsi5C_MFC.JPG
J'ai r=E9ussi =E0 parcourir les fichiers sauf que je ne sais pas comment
afficher le contenu du fichier dans le listBox "Values".
Voici mon code :
// InterfaceDlg.cpp : fichier d'impl=E9mentation
//
// bo=EEte de dialogue CAboutDlg utilis=E9e pour la bo=EEte de dialogue '=
=C0
propos de' pour votre application
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Donn=E9es de bo=EEte de dialogue
enum { IDD =3D IDD_ABOUTBOX };
protected:
//responsable de tout =E9change entre un contr=F4le et une variable
virtual void DoDataExchange(CDataExchange* pDX); // Prise en
charge de DDX/DDV
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
//Je vais lier l'=E9dit =E0 la variable m_csInputFile, chaque changement
de m_csInputFile
//va =EAtre affich=E9 dans la zone de texte
DDX_Text(pDX, IDC_INPUTFILE, m_csInputFile);
CDialog::DoDataExchange(pDX);
}
// Ajouter l'=E9l=E9ment de menu "=C0 propos de..." au menu Syst=E8me.
// IDM_ABOUTBOX doit se trouver dans la plage des commandes syst=E8me.
ASSERT((IDM_ABOUTBOX & 0xFFF0) =3D=3D IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
// D=E9finir l'ic=F4ne de cette bo=EEte de dialogue. L'infrastructure
effectue cela automatiquement
// lorsque la fen=EAtre principale de l'application n'est pas une
bo=EEte de dialogue
SetIcon(m_hIcon, TRUE); // D=E9finir une grande ic=F4ne
SetIcon(m_hIcon, FALSE); // D=E9finir une petite ic=F4ne
// TODO : ajoutez ici une initialisation suppl=E9mentaire
return TRUE; // retourne TRUE, sauf si vous avez d=E9fini le focus sur
un contr=F4le
}
// Si vous ajoutez un bouton R=E9duire =E0 votre bo=EEte de dialogue, vous
devez utiliser le code ci-dessous
// pour dessiner l'ic=F4ne. Pour les applications MFC utilisant le
mod=E8le Document/Vue,
// cela est fait automatiquement par l'infrastructure.
void CInterfaceDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // contexte de p=E9riph=E9rique pour la peinture
// Centrer l'ic=F4ne dans le rectangle client
int cxIcon =3D GetSystemMetrics(SM_CXICON);
int cyIcon =3D GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x =3D (rect.Width() - cxIcon + 1) / 2;
int y =3D (rect.Height() - cyIcon + 1) / 2;
// Le syst=E8me appelle cette fonction pour obtenir le curseur =E0
afficher lorsque l'utilisateur fait glisser
// la fen=EAtre r=E9duite.
HCURSOR CInterfaceDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CInterfaceDlg::OnBnClickedParcourir()
{
// TODO : ajoutez ici le code de votre gestionnaire de notification
de contr=F4le
CString OpenFilter;
OpenFilter =3D "Text File (*.txt)|*.txt||";
"Khaoula Bouazizi" <khaoula.bouazizi@gmail.com> a écrit dans le message de
news: 674d8af0-a9e0-414b-b996-6fd1c5c2c9e5@g31g2000yqc.googlegroups.com...
Bonjour,
Je souhaite développer une interface graphique qui permet de parcourir
des fichiers et de les afficher, voici ma maquette initiale :
http://cjoint.com/data/knpF4Wsi5C_MFC.JPG
J'ai réussi à parcourir les fichiers sauf que je ne sais pas comment
afficher le contenu du fichier dans le listBox "Values".
Tu lis le fichier ligne à ligne (fopen(), fgets(), ..) comme sur
http://irc.essex.ac.uk/www.iota-six.co.uk/c/i2_feof_fgets_fread.asp
et tu insères chaque ligne dans la listbox avec
CListBox::AddString si tu es en MFC : comme
http://msdn.microsoft.com/en-us/library/2cekde96(VS.80).aspx
(bien que ce soit bizarre d'utiliser une lisbox pour afficher un fichier, au
lieu d'un multi-line ou richedit..)