romainbisson
Messages postés88Date d'inscriptionjeudi 25 octobre 2007StatutMembreDernière intervention 9 septembre 2014
-
29 mai 2008 à 17:31
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 2014
-
29 mai 2008 à 21:45
Bonjour,
j'ai besoin de faire un programme qui lit ligne par ligne un fichier en recuperant a certains emplacement de la ligne, la valeur :
exemple de ligne :
13;Condi.;I2041 ;70398 ;JARRET AVT A/OS PO CG ;035215;20090927;000015;00295.420;00000.000;830026598000352157;20080331;P;20080328;N;13;20080422
les trucs en rouge sont a recuperer dans un autre fichier
merci de votre aide
j'ai deja commencé a tapé un petit programme mais il n'est pas bon car il lit les lignes du début jusqu'a la fin
PS :
la premiere valeur est entre 17 et 26
la deuxieme valeur est entre 62 et 69
la troisieme valeur est entre 124 et 133
merci de votre aide ..
#include <stdio.h>
#include <string>
int main(int argc, char **argv)
{
char *nf;
char buffer[100000];
long adresse[100000];
int compteur;
nf = argv[1];
FILE *f;
while(true){
f = fopen(nf,"r");
if(f) break;
printf("\n *** ERREUR A L'OUVERTURE DU FICHIER ***\n");
}
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 29 mai 2008 à 17:48
fseek et donc ton tableau adresse sont inutiles ici. fgets déplace elle-même, en lisant la ligne, le "curseur" de lecture.
À moins que tu souhaites garder la position des lignes. Dans ce cas, tu peux remplir ton tableau adresse dans la même boucle où tu affiche la extrait ligne.
printf("%s",buffer-5);
???
Tu commences à lire 5 octets avant le buffer ???
while(true){
f = fopen(nf,"r");
if(f) break;
printf("\n *** ERREUR A L'OUVERTURE DU FICHIER ***\n");
}
Ton programme bouclera indéfiniment ici si ton fichier n'existe pas.
Finalement, une lecture ligne par ligne n'est concevable qu'avec des projets modestes ou des exercices. Impensable d'utiliser cette méthode dans un projet de plus grande envergure.
Une lecture par bloc de plusieurs ko et un traitement fait à même ce buffer sera infiniment plus rapide. À prévoir pour tes futures projets.