swan94
Messages postés254Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention 2 avril 2010
-
25 févr. 2007 à 15:32
shurikan
Messages postés1Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention10 décembre 2009
-
10 déc. 2009 à 16:13
Salut à tous,
Je suis actuellement en galère pour trouver la solution à ce problème :
J'aurais besoin de pouvoir lire la ligne dont le numéro serait stocké dans une variable.
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 févr. 2007 à 15:40
Salut !
Pour récupérer la ligne n d'un fichier texte, soit tu utilises n fois la fonction fgets(...) soit tu comptes le nombre de caractère de fin de ligne (caractère '\n') en ayant lu le fichier texte en entier avec la fonction fread(...).
Je précise que la deuxième solution est la plus rapide.
swan94
Messages postés254Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention 2 avril 2010 25 févr. 2007 à 16:32
Merci beaucoup pour ton aide mais une dernière chose :
je n'arrive pas à afficher le texte récupéré par fgets. Et une fois que ce sera fait il faudra que je puisse lire la 2 ème chaine de caractère car en fait le fichier se compose ainsi :
test mdptest1
test2 mdptest2
il affiche à l'écran
1) test
2) test2
et il propose à l'utilisateur de choisir entre les differentes possibilités et en fonction du choix il faut que j'arrive à afficher soir mdptest1 soit mdptest2.
Merci beaucoup
Swan94
Vous n’avez pas trouvé la réponse que vous recherchez ?
swan94
Messages postés254Date d'inscriptionjeudi 29 juillet 2004StatutMembreDernière intervention 2 avril 2010 25 févr. 2007 à 16:48
d'après toi fgets doit m'afficher mdptest1 si je prend la ligne 1 ?
parce que moi il ne m'affiche rien même en essayant de stocker dans un variable et de faire un printf
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 25 févr. 2007 à 16:52
Un conseil swan94, quand on te donne des fonctions cherche de la doc dessus (MSDN, google est ton ami).
2 ème conseil, à mon avis tu ferais mieux de chercher des tutoriaux et/ou bouquins de C pour apprendre les bases.
Ce n'est pas en te pondant du code tout fait que tu apprendras quelque chose.
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 25 févr. 2007 à 17:44
"Ne pas lire un fichier par petit bout ou 1 char à la fois. Lis tout ton fichier d'un coup et navigue dans le buffer avec des pointeurs:"
dixit SAKingdom...
Vrai et pas vrai....
SAKingdom., je pense que tu n'a pas du coder beaucoup de projet ou la taille du buffer est importante (serveur web, indexeurs, parser xml, lib de compression, streaming audio / video, etc, ....) et pas codé sur des plateforme à mémoire limitées (windwos ce, palm, ..).
Pour parser un fichier xml de 40 Mo, tu n'alloue pas 40 mo de memoire, tu a un buffer de quelques ko... Ou alors si je devais indexer des fichiers sur des mots clés ou alors analyser des fichiers en multithreads, je ne lispas tout mon fichier mais bout après bout...
Par contre dans l'exemple de Swan, pas de soucis, autant tout faire en mémoire.. Et puis toujours dans sont exemple, au lieu d'aller chercher la Xime ligne qui correspont à un user, autant chargerles fichier 1 fois avec un tableau de user/mdp....
Sur cet exemple de code, tu a entièrement raison... mais en faire un généralité ... c'est de l'héresie !
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 25 févr. 2007 à 17:50
Je ne généralise pas. Évidament que si un fichier fais 40Mo, on lis par section dans un "petit" buffer mais ce que je voulais dire par "petit bout ou 1 char à la fois", c'est faire des fgetc et fgets pour tout le ficher. Même sur une platforme limité en ressource, c'est impensable surtout si ton programme doit performer.
shurikan
Messages postés1Date d'inscriptionsamedi 24 octobre 2009StatutMembreDernière intervention10 décembre 2009 10 déc. 2009 à 16:13
SVP j'ai besoin de vous!!Je suis entrain de travailler sur un projet où je dois extraire des données depuis un fichier pour les utiliser ensuite. Le souci c'est que ces données commencent à partir de la 7éme ligne et que les 7 premières lignes ne sont pas identiques pour chaque fichier. Donc fseek KO :s
J'essaye de lire les 7 premières lignes pour ensuite commencer d'extraire les données mais ça bloque au niveau du while et j'ai une boucle infinie.
Est ce que quelqu'un pourrait m'aider svp????