[C] Lire un fichier . txt URGENTISSIME

jovenix Messages postés 2 Date d'inscription samedi 23 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010 - 23 janv. 2010 à 19:26
jovenix Messages postés 2 Date d'inscription samedi 23 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010 - 23 janv. 2010 à 19:48
Bonjour,
J'ai suivit des cours basique de programation en language C et j'ai un projet à rendre pour lundi matin !!
Aucun probléme pour ECRIRE mais je rencontre un probléme pour LIRE dans un fichier .txt et j'ai vraiment besoin de votre aide en tout urgence (Il reste du boulot et j'ai déja passer plusieur heures sur ce probléme) !

Le sujet : Coder un programme capable de gérer la location de voitures ... (Je vous la fait courte ^^) !


MON PROBLÈME :
Je me sert d'une "base de données" contenu dans un fichier .txt contenant les infos de chaque clients sur une unique ligne
EXEMPLE : (deux clients, dans l'ordre : leurs n° d'identifiant, nom, prenom, tel)
ID;1;PERRON;Lucas;0189632147;
ID;2;PARIN;Pierre;0647475814;


J'utilise donc une structure :

typedef struct
{
int idEmploye;
char nom[100];
char prenom[100];
int tel;
int nbrKmEmploye;
int nbrAccident;
}Employe;

Le principe c'est que j'appel la base de donner en tout début de programme pour remplir les cases du tableau (dont j'ai besoin par la suite) :
Employe tabEmploye[100];
(Dans notre cas seul les 2 premieres cases seront utilisées)

Voici mon code, je compte sur vous pour me dire ce qu'il ne va pas :)


void miseAJourInitiale ()
{
int i;
char tampon[100]; // Pour eviter un bug qui lit tout la ligne lors du 1er fscanf d'un char

FILE *fichier1;
fichier1=fopen("véhicules.txt","r");

if(fichier1==NULL)
fclose(fichier1);
else
{
for (i=1; i<100; i++)
{
if (getc(fichier1) != EOF)
{
fseek(fichier1,2, SEEK_CUR);
fscanf(fichier1,"%d;",&tabEmploye[i].idEmploye);
fscanf(fichier1,"%s;",&tampon);
fscanf(fichier1,"%s;",&tabEmploye[i].nom);
fscanf(fichier1,"%s;",&tabEmploye[i].prenom);
fscanf(fichier1,"%d;",&tabEmploye[i].tel);
fscanf(fichier1,"%d;",&tabEmploye[i].nbrKmEmploye);
fscanf(fichier1,"%d;",&tabEmploye[i].nbrAccident);

printf("\n..%d..%s..%s..%d..%d..%d..\n", tabEmploye[i].idEmploye, tabEmploye[i].nom, tabEmploye[i].prenom, tabEmploye[i].tel, tabEmploye[i].nbrKmEmploye, tabEmploye[i].nbrAccident);
}
}
system("PAUSE");
}

fclose(fichier1);

}


Le programme me donne un résultat abérant, ne prennant pas en compte les char (Et les int sont faux ^^)
..1......0..0..

PS : je n'ai méme pas encore codé pour rentrer les valeur dans le tableau car les données lut sont erronées vu le résultat du printf ....

Je ne peut pas continuer sans votre aide :s
Un énorme merci par avance

1 réponse

jovenix Messages postés 2 Date d'inscription samedi 23 janvier 2010 Statut Membre Dernière intervention 23 janvier 2010
23 janv. 2010 à 19:48
A noté que quand je fait des fprintf avec pour rentrer tout les données juste avant mes fscanf ca marche parfaitement bien ...

Par contre quand je fait que de la lecture au début (donc sans écriture juste avant) ca ne marque plus et j'ai des valeures abhérantes !
0
Rejoignez-nous