Lire un fichier et le stocker dans une variable

Signaler
Messages postés
3
Date d'inscription
jeudi 12 février 2004
Statut
Membre
Dernière intervention
15 mars 2004
-
Messages postés
3
Date d'inscription
jeudi 12 février 2004
Statut
Membre
Dernière intervention
15 mars 2004
-
Bonjour à tous,

J'ai quelques notions en C/C++ et travaille dans un environement Visual c++ 6.

Mon problème est que je voudrais lire un fichier dont le contenu est des lignes puis stocker ces données dans un tableau de string pour pouvoir m'en servir après pour afficher le texte dans des message box ou autres. Le problème est que je veux que ca se fasse à l'initialisation de la fenetre;
exemple de mon code :

ifstream Fichierin ("c:\\test.txt");
int max=0;
char buffer[100];
typedef char string[1000];
string *ligne;

ligne = new string [1000];

while (! Fichierin.eof())
{
Fichierin.getline(buffer,1000);
strcpy(ligne[max],buffer);
max++;
}

Je pense qu'il doit me manquer des notions ......
Est ce que quelqu'un à une idée ?
Merci d'avance.

SeVaY

2 réponses

Messages postés
4
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
21 avril 2004

Salut SeVaY,

Ce que tu peut essayer c'est de créer des blocs pour que chaque lignes de ton fichier est le même nombre de caractères. Ensuite, tu recopie chaque ligne caractère par caractère dans un tableau à 2 dimensions.

Sinon il faut crée une boucle qui recopie une ligne caractère par caractère et que la condition de sortie de ta boucle soit la détection d'un caractère (par exemple le caractère de fin de ligne ( un saut de ligne 0A en héxadécimal et surtout un retour de chariot 0D en héxa).

Je recherche une solution plus pratique, en attendant, bonne chance.

Enjee Denton
Messages postés
3
Date d'inscription
jeudi 12 février 2004
Statut
Membre
Dernière intervention
15 mars 2004

Merci Enjee Denton pour ta réponse rapide, mais c'est bon je viens de trouver la solution. En fait ce fichier est un fichier dans lequel se trouve tous les textes de ma fenetre. Cette lecture doit se faire à l'initialisation du programme pour que les textes soient pris en compte.
Donc, il suffisait de le mettre juste après le :
case WM_INITDIALOG:

Alors mon fichier est bien lu. Il me reste juste un petit souci, c'est que je ne sait pas modifier le texte d'un menu pendant le fonctionnement du programme.

PS : La syntaxe est que j'utilise est la suivante :

// AFFICHAGE DES LIGNES SPECIFIQUES AU FICHIER
ifstream Fichierin ("c:\\test.txt");
int nbrlignes=0;
char buffer[100];
typedef char string[1000];
string *ligne;

ligne = new string [1000];

while (! Fichierin.eof())
{
Fichierin.getline(buffer,512);
strcpy(ligne[nbrlignes],buffer);
nbrlignes++;
}

De cette manière je recupère mon texte dans le variable ligne[nbrlignes].
Puis je l'affiche dans la fenetre comme suit :
SetDlgItemText(Dlg,IDB_BOUTON1,ligne[0]);
SetDlgItemText(Dlg,IDB_BOUTON2,ligne[1]);
....

Je n'ai pas réussi non plus à prendre la variable IDB_BOUTONn dans le fichier, il faut que je la code en dur dans le programme, mais ca c'est pas trop grave...

Si quelqu'un à une idée pour les menus.....

Merci.
SeVaY