Bonjours à tous,je voudrais lire la derniere ligne d'un fichier texte ouvert en lecture avec ifstream.
Dans mon application(MFC AppWizard exe)Visual C++,j'ouvre ce fichier en ecriture avec ofstream dans d'autre
evenements.
Ce fichier comporte l'etat des boutons.
Mais je dois pouvoir ecrire dans le fichier texte hors de mon application et pouvoir interpreter son contenu
dans l'application.
Voici mon code et ce que j'ai obtenu avec est une chaine vide.
void CTtDlg::OnViewFile()
{
char ligne[30];
// ouverture en lecture.
// ios::app pointeur au debut du fichier
ifstream train("fic.txt",ios::app);
AfxMessageBox("ligne par ligne");
//Affichage du contenu du fichier ligne par ligne
while (train.getline (ligne,sizeof(ligne)));
AfxMessageBox(ligne);
//la derniere ligne affichée est une chaine vide je voudrai atteidre la ligne d'avant.
train.close(); // fermeture du fichier
}
j'ai essayé de faire un seek de la fin puisque je connais taille des chaines ecrites dans le fichier
//train.Seek(30,STREAM_SEEK_END,NULL);
mais je n'ai pas trouvé de méthode supporté par ifstream
Il existe une methode seekg(nbr octets) qui fait un saut du début le nbr octets étant
la taille du fichier-30
//train.seekg(taille-30);
mais je n'ai trouvé aucun moyen de calculer la taille avec ifstream
TRES IMPORTANT
je dois pouvoir conserver cette ligne dans une chaine de charactéres
//train.getline (ligne,sizeof(ligne));
avec getline je peux conserver la ligne lu dans la chaine ligne.
Merci d'avance.