voilà, j'ai un problème avec un petit fichier en cpp.
mon programme a pour but la modification des plans de vols du traffic AI dans flight sim. Ces plans de vols sont dans un fichier txt (de 2Mo tout de même).
je veux retirer des vols en fonction de 1° l'avion et 2° s'il concerne un aéroport français.
mon programme doit dans ce fichier regarder chaque ligne (correspondant à un plan de vol différent), déterminer si l'avion fait parti de la liste d'avion qui attire mon attention, et ensuite vérifier s'il se pose en France. Si c'est pas le cas, la ligne est inscrite dans un fichier txt de sortie.
le déroulement du programme:
1- il demande le chemin et le nom du fichier (pour pas avoir à retaper le truc à chaque essai, je l'ai inscrit direct et mis le cin en remarque)
2- il ouvre le fichier d'entrée et crée le fichier de sortie.
3- il boucle sur un do while où il lit la ligne en la mettant dans une chaine de caractère et en captant le numéro de l'avion.
ensuite, il teste le numéro, puis si c'est concluant, il teste les noms d'aéroport qui doivent commencer par LF pour indiquer la France.
mon problème est que le do while ne s'arrête pas (je crois). Sinon, je crois que j'ai une merde dans un test sur l'aéroport (ça doit mettre un false au lieu d'un true, m'enfin, c'est pas un gros problème...)
exemple d'une ligne, avec en gras, dans l'ordre: numéro de l'avion, aéroport 1, aéroport 2
AC#4,N24680,20%,8Hr,IFR,00:35:16,03:43:43,290,F,5119,KLEX,04:35:13,07:43:39,300,F,5118,LFPB
voilà 4 plans de vols
[cpp]AC#4,N24680,20%,8Hr,IFR,00:35:16,03:43:43,290,F,5119,KLEX,04:35:13,07:43:39,300,F,5118,LFPB
AC#28,N69080,52%,6Hr,VFR,01:14:11,03:28:39,065,F,7545,ESNX,04:14:08,06:28:37,075,F,7544,ENAT
AC#44,N69016,25%,12Hr,IFR,01:51:16,06:47:28,320,F,7668,ESNX,07:51:21,12:47:33,310,F,7669,UTSB
AC#44,N92176,21%,12Hr,IFR,04:27:48,09:15:18,300,F,0273,KPDX,10:27:43,15:15:12,310,F,0272,KVQQ
[/cpp]
voilà le code
[cpp]/***********************************
* FS Basic Airliner Remover *
* par dPm *
***********************************/
#include
#include
#include
#include
#include
using namespace std;
//constante
#define NBVIRG1 10
#define NBVIRG2 6
//déclaration des fonctions
void titre(void);
//fonction titre
void titre(void)
{
//titre a la con pour faire joli
system("cls");
cout<<"FS Basic Airliner Remover\nPar dPm\n-------------------------\n\n";
}
//fonction main
main()
{
char filepath[256];
char temp[6];
char tampon[300];
int valeurAC[39]={4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,46,47,48,50,54,55,57,58,59};
char ctemp = 'a';
int pos1 = 0;
int pos2 = 0;
int acnum = 0;
int x = 0;
bool delAC = false;
titre();
cout<<"veuillez indiquer le fichier avec arborescence complète:\n";
//cin>>filepath;
strcpy(filepath, "c:\\texte.txt");
fstream forg(filepath);
fstream ffin("c:\\fichiersortie.txt");
titre();
if(forg.is_open())
{
cout<<"Le fichier est ouvert\n";
system("PAUSE");
}
else
{
cout<<"Erreur d'ouverture de fichier\nFin du programme\n\n";
return;
}
titre();
forg.seekg(0);
do
{
x = 0;
delAC=false;
pos1 = forg.tellg();
pos2 = pos1 + 4;
forg.seekg(pos2);
forg>>acnum;
forg.seekg(pos1);
forg.getline(tampon, 300, '\n');
while(x<39)
{
if(acnum == valeurAC[x])
{
delAC = true;
x=40;
}
x++;
}
if(delAC == false)
{
x=0;
while(x<100)
{
if(tampon[x] == 'L' && tampon[x+1] == 'F')
{
delAC = true;
x = 340;
}
x++;
}
}
if(delAC == false)
{
cout<
ffin<
}
}while(!(forg.eof()));
}[/cpp]