Fichier

Résolu
Nabluk Messages postés 4 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 24 janvier 2010 - 21 janv. 2010 à 17:50
Nabluk Messages postés 4 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 24 janvier 2010 - 24 janv. 2010 à 19:53
Bonjour, j'espère que vous pourrez m'aider...

J'ai écris un programme en C qui me crée un fichier contenant environ 10 000 000 de nombre en une colonne.
Je voudrais un moyen de lire le dernier nombre du fichier sans parcourir tout le fichier car cela prend trop de temps en sachant que le but est d'augmenter encore le nombre de chiffre.

Merci.

6 réponses

BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
21 janv. 2010 à 18:02
Salut,
fseek() te permet d'aller à la fin d'un fichier en spécifiant l'option SEEK_END


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
3
Nabluk Messages postés 4 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 24 janvier 2010
21 janv. 2010 à 18:34
Re,

Si j'écris le code suivant :
int n;
FILE *fichier = fopen("liste.txt","r");
fseek(fichier, 0, SEEK_END);
fscanf(fichier,"%d",&n);
printf("%d",n);
fclose(fichier);

Il ne m'écrit pas le dernier nombre de la liste mais "l'adresse" (je crois) de EOF (pas sur).
En gros, il place le curseur juste en dessous du dernier élément. Ceci semble normal vu que chaque élément est un entier suivi d'un retour à la ligne.
Comment dois-je faire pour lire le dernier nombre?
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
22 janv. 2010 à 09:18
Tu peux parcourir le fichier à l'envers, jusqu'à trouver 2 retours à la ligne. Ton dernier entier devrait être compris entre ces 2 caractères, non?

...
10\n
11\n
EOF


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Nabluk Messages postés 4 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 24 janvier 2010
23 janv. 2010 à 15:26
Une idée du code que je peux utiliser pour lire le dernier élément en lisant à l'envers ?

Merci des réponses.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
a7zaaan Messages postés 1 Date d'inscription dimanche 24 janvier 2010 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 11:37
salut je suis nouveau ici je cherche le cours de fichiers dans l'algorithme et merci
0
Nabluk Messages postés 4 Date d'inscription dimanche 27 mai 2007 Statut Membre Dernière intervention 24 janvier 2010
24 janv. 2010 à 19:53
Re,

Quelqu'un pourrait m'aider à résoudre mon problème, je repose ma question :
Je voudrais lire le dernier élément d'une liste de nombre dans un fichier. Cette liste contient environ 10 000 000 de nombres inscrit comme suit : (nombre)\n.
Quelqu'un aurait une idée de code pour ne pas lire tous les nombres parce que c'est beaucoup trop long??

Merci pour votre aide.
0
Rejoignez-nous