begin process at 2012 05 30 03:24:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Fichier & Disque

 > 

[C] lire une ligne L dans fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C] lire une ligne L dans fichier texte

dimanche 25 février 2007 à 15:32:14 | [C] lire une ligne L dans fichier texte

swan94

Membre Club
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.

Merci d'avance pour votre aide.

Swan94
dimanche 25 février 2007 à 15:40:10 | Re : [C] lire une ligne L dans fichier texte

yoyo269

Membre Club
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.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]

dimanche 25 février 2007 à 15:53:06 | Re : [C] lire une ligne L dans fichier texte

swan94

Membre Club
salut et merci de m'avoir répondu.

pourrais-tu me mettre un exemple de l'utilisation de fread s'il te plait

merci

Swan94
dimanche 25 février 2007 à 16:12:37 | Re : [C] lire une ligne L dans fichier texte

vicenzo

Membre Club
voici une possibilité :

int main()
{
    int ma_ligne = 12;
    char buffer[256];

    FILE *f = fopen("c:\\test.txt", "r");
   
    if (f)
    {
        int no_ligne = 0;
        char c;

        while(EOF != (c = fgetc(f)))
        {
            if ('\n' == c)
            {
                if (no_ligne == ma_ligne)
                   break;
                no_ligne++;
            }
        }

        if (no_ligne == ma_ligne)
        {
          fgets(buffer, sizeof(buffer), f);
        }
    }


    return getchar();
}

dimanche 25 février 2007 à 16:32:41 | Re : [C] lire une ligne L dans fichier texte

swan94

Membre Club
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
dimanche 25 février 2007 à 16:44:21 | Re : [C] lire une ligne L dans fichier texte

vicenzo

Membre Club
""je n'arrive pas à afficher le texte récupéré par fgets"".

????

sinon pour decouper la ligne en deux, tu peux utiliser strok()
dimanche 25 février 2007 à 16:48:26 | Re : [C] lire une ligne L dans fichier texte

swan94

Membre Club
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

Swan94
dimanche 25 février 2007 à 16:52:43 | Re : [C] lire une ligne L dans fichier texte

yoyo269

Membre Club
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.

YOYO, @+.

"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"
____________________________________________
[Site officiel de YoyoCut, découpe fichiers open source]

dimanche 25 février 2007 à 17:13:01 | Re : [C] lire une ligne L dans fichier texte

swan94

Membre Club
j'ai trouvé une solution finalement :
une boucle while avec scanf et je compte les lignes passées dans ma boucle.

Merci quand même à vous pour votre aide.

Swan94
dimanche 25 février 2007 à 17:23:17 | Re : [C] lire une ligne L dans fichier texte

SAKingdom

Membre Club
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:

#include <stdlib.h>
#include <io.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    char *buffer, *c, *d, tab[256] = {0};
    FILE *file;
    int len, line = 2;

    if(!(file = fopen("c:\\test.txt", "r"))) return 0;

    if(!(len = _lseek(file->_file, 0, SEEK_END))) goto closefile;
    _lseek(file->_file, 0, SEEK_SET);

    if(!(buffer = (char*)malloc(len))) goto closefile;

    fread(buffer, 1, len, file);
    c = buffer; d = buffer;

    do
    {
        if(*c++ == '\n')
        {
            if(!--line) break;
            d = c;
        }
    }while(--len);

    strncpy(tab, d, c-d);

    printf("%s\n", tab);

    free(buffer);
closefile:
    fclose(file);

    system("pause");

    return 0;
}


D'ailleurs, si ton programme ne doit rester que sous Windows, je te suggère d'utiliser les fonctions de l'API Win32:
CreateFile
ReadFile
GetFileSize

C++ (@++)


1 2

Cette discussion est classée dans : fichier, ligne, texte, lire


Répondre à ce message

Sujets en rapport avec ce message

Lire un fichier Texte Ligne par ligne [ par Ricpperso ] Bonjour,bon je fai un pti proget je voudrai savoir comment on fais pour lire un fichier Texte ligne par ligne, avec si possible le Cfile.merci d'avanc Lire une ligne d'un fichier texte [ par CassusGreg ] Salut à tous,Est-ce-qu'il existe une fonction pour lire une ligne de texte (terminé par 0x0D 0x0A) dans un fichier?Je suis sous VC++ 6merci lire une ligne dans un fichier texte puis........ [ par oudkaramla ] salut out le monde,je veux lire 3 lignes d'un fichier texte, puis faire le découpage de chaque ligne en petits morceauxje sais qu'il ft faire fopen() Fichier texte.. [ par flightplan ] Bonjour à tous, j'aimerais lire un fichier texte ligne par ligne via les MFC de visual C++ 6 avec l'instruction readstring, mais il ne me lit que la p Lire dans un fichier texte [ par hasen ] Bonjour,Je suis en plein projet et je dois lire dans un fichier, ce que je fais mais caractère par caractère et c'est pas toujours facil à gérer. Est- Lecture ligne par ligne d'un fichier texte [ par Aldarek ] Bonjour à tous, je sais comment on fait pour lire un fichier ligne par ligne mais je cherche à lire une ligne particulière pour ensuite récupérer sa v MFC lire un fichier texte ligne par ligne [ par mqsi ] salut a tous,vs pouvez me dire comment lire un fichier texte ligne par ligne,puis recuperer chaque ligne ds un tableau,et merci pr l'aide,je travail a lire un fichier texte avec visual C++ [ par sarah62223 ] Bonjour,Je suis actuellement en train de developper en C++ et je voudrais savoir comment faire pour venir lire dans un fichier texte ligne par ligne , Lire la nième ligne d'un fichier texte [ par boninou ] Bonjour à tous !J'aurais voulu savoir comment lire la nième ligne d'un fichier texte en C.Que dois-je utiliser ? fgets? je dois me deplacer avec fseek cmt lire la n-ieme ligne d'un fichier texte [ par yanlou ] salut,je veux savoir comment je peux lire la n-ieme ligne d'un fichier texte en c++maximus


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 8,939 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales