diff --git a/fly.c b/fly.c new file mode 100644 index 0000000000000000000000000000000000000000..e96f62d9cc5d508a6a77948c4a84d294bb6c442b --- /dev/null +++ b/fly.c @@ -0,0 +1,142 @@ +#include <stdio.h> + +struct airline +{ + char IATA_CODE_AIRLINE[2]; + char AIRLINE[30]; +}; + +struct airport +{ + char IATA_CODE_AIRPORT[3]; + char NAME[80]; + char CITY[30]; + char STATE[3]; + char COUNTRY[3]; + float LATITUDE; + float LONGITUDE; +}; + +struct flight +{ + int MONTH; + int DAY; + int WEEKDAY; + char AIRLINE[2]; + char ORGAIR[3]; + char DEST_AIR[3]; + int SCHDED_DEP; + int DEP_DELAY; + float AIR_TIME; + int DIST; + int SCHED_ARR; + float ARR_DELAY; + int DIVERTED; + int CANCELLED; +}; + +int q=1; +FILE *fo1; +FILE *fo2; +FILE *fo3; + + +fo1=fopen("airports.csv","rt"); +fo2=fopen("flights.csv","rt"); +fo3=fopen("airlines.csv","rt"); + +if( (fo1 == NULL) || (fo2 == NULL) || (fo3 == NULL) ) +{ + printf("Ouverture des fichiers impossible ! \n" ); + exit(0); +} + +struct chaine{ + + int cle; + struct cell *liste; +}; + +struct cell{ + + struct flight *info; + struct cell *suiv; + +}; +/* +int ajout_tete(struct liste_chaine** l, struct flight *info){ + struct liste_chaine* newcell; + newcell=malloc(sizeof(struct liste_chaine)); + newcell->info=info; + newcell->suiv=(*l); + (*l)=newcell; + +} +*/ +int construc_chaine(FILE *fp){ + struct cell *new; + while (fscanf(fp,"%s")!=EOF){ + if (fscanf(fp,"%s")=="\n") + + + } + + +} + + + +/* +Ici on va creer une nouvelle liste chainée avec un ajout_tete qui prednra en paramettre l'aeroport +Pour faire la recherche on va se servir de la hastable de la compagnie en recherchant les aeroport dont elle est origine +En ajoutant dans la liste seulement si l'aeroport ni est pas deja +*/ +int show_airports(struct flight *AIRLINE) +{ +// on crée la nouvelle liste chainée vide +// Recup de la cle du paramettre +//On cherche dans la hastable les ce que l'on a besoin +// On renvoie cette info dans la liste chainée seulement si elle ni est pas encore +//on return ou on print la nvl liste chainée + +} +int main(){ + + return 0; +} + + + + + +void split_arg(char * fullstring, char **arg) //Cette fonction sépare tous les arguments séparés par un espace, valides ou non, de la requête et les stocke dans des chaînes de caractères. +{ + int i=0,a=0; + char separators[]="\n"; + char temp1[N]="",temp2[N]=""; + arg[0]=strtok(fullstring,separators); + while ( arg[i] != NULL ) //Tant qu'il y a des arguments, c'est à dire tant qu'on ne rencontre pas un EOF. + { + i++; + //On stocke l'argument suivant. + arg[i] = strtok ( NULL, separators ); + } + + for (int k=i;k<14;k++) //On remplace les arguments vide par une chaîne de caractère "NULL" pour éviter les erreurs dans les manipulations de ces arguments par la suite. + { //On ne va que jusque l'indice 13 car le nombre d'argument max que l'on puisse traiter est 14 donc on ne manipulera jamais les arguments suivants. + arg[k]="NULL"; //Le tableau arg[N] lui est plus grand que 14 pour acceuillir tous les arguments (même s'il y en a trop) de la requête. + } + + strcpy(temp1,arg[i-1]); + while ((int)temp1[a] != 10) + { + temp2[a]=temp1[a]; //Pour le dernier argument de la requête on supprime le retour à la ligne pour éviter les erreurs dans les manipulations suivantes de cet argument. + a++; + } + strcpy(arg[i-1],temp2); + + /*for (int j=0;j<14;j++) + { + printf("arg[%d] : %s \n",j,arg[j]); //Affichage possible. + }*/ +}