B_R_
Messages postés1Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention 9 juin 2004
-
9 juin 2004 à 19:10
cs_zelastwarrior
Messages postés33Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention10 juin 2005
-
9 juin 2004 à 23:58
Bonjour,
Je suis à une position donnée dans un fichier (apres plusieurs fgets() )
et j'ai besoin de recupérer un bloc de taille indefinie (mais marqué par des balises) précédant ma position actuelle.
Comment faire cela? Le fichier à parser est potentiellement tres gros, je peux pas tout mettre en mémoire. Et les fonctions standards de stdio.h ne permettent pas la lecture en sens inverse...
cs_zelastwarrior
Messages postés33Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention10 juin 2005 9 juin 2004 à 21:29
ben je sais pas si c vraiment une bonne idée mais au depart je pensé comme toi !! avec des fqqchose. essai des methode de lecture de plus bas nivo.
comme read() et write(). si besoin de plus d'info contacte moi sinon l'aide est pas mal faite aussi
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 9 juin 2004 à 21:58
tu veux récupérer un bloc de taille n. Comme tu peux pas tout mettre en mémoire, tu prend dans des bloc de 1024 par exemple.
tant que n > 1024
{
tu recules de 1024, tu lis 1024 et tu recules de 2048, et tu inverses la chaine (la ca peut être long)
tu enleves 1024 à n
}
tu lis n caractères et tu inverses
cs_zelastwarrior
Messages postés33Date d'inscriptionvendredi 28 mai 2004StatutMembreDernière intervention10 juin 2005 9 juin 2004 à 23:58
non pas vraiment si compliqué que ca !!!
en fait tu as un pointeur sur un fichier !!
fic = open (syntaxe);
fic en fait correspond a la position du pointeur ds le fichier.
Alors avec une Zolie fction tu le met a la fin de ton fichier (il en existe une en c filelenght (un truc ds ce genre)). Ensuite ton pointeur tu le fait reculer de 2 fois ton avancement pour que qd tu avance tu retombe a la fin d'ou tu veux tomber.
nota g employé cette methode a l'endroit pour lire un fichier mais bon ca marche aussi a l'envers!! et ton raisonnement été bon. je le confirme. a bientot