Récupérer des lignes d'un fichier txt

the_neo_81
Messages postés
4
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
31 mai 2007
- 30 mai 2007 à 21:17
Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
- 31 mai 2007 à 17:15
Bonjour à tous, voila donc ma question.

Cela fait un bon moment que je cherche à:

    -lire un fichier txt préformater (je sais que tel ligne  = tel information);
    -récupérer chaque ligne lu, pour les mettrent chacune dans une variable différente

pour ensuite pouvoir utiliser chaque information de chaque lignes comme je veux. (En C bien evidement).

Je sais comment ouvrir le fichier txt, lire les lignes et tt et tt, mais pas comment faire pour que chaque ligne entre dans une variable.

Si quelqu'un pouvait me sortir de cette galere, cela m'arrangerai beaucoup!!!

Merci d'avance pour les réponses!

9 réponses

Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
31 mai 2007 à 09:55
si tu arrives à lire les lignes, où est le problème pour stocker dans une variable ?

Loki
0
the_neo_81
Messages postés
4
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
31 mai 2007

31 mai 2007 à 10:49
bah j'arrive pas a lire chaque ligne, et metre chaque ligne dans une variable diférente... J'arrive pas a trouver le code pur le faire... j'ai fait plein de test....piiiii non.

Je suis peut etre pas doué aussi mais bon
0
Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
31 mai 2007 à 11:41
montre nous ton code

Loki
0
the_neo_81
Messages postés
4
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
31 mai 2007

31 mai 2007 à 15:49
void test ()
{


    FILE* fichier = NULL;
    char chaine[1000] = ""; // Chaîne vide de taille TAILLE_MAX
    char** tabChaine;
    int nCountLine = 0;
       
    fichier = fopen("titi.txt", "r");


    if (fichier != NULL)
    {
        while (fgets(chaine, 1000, fichier) != NULL)
        {
        realloc(tabChaine, nCountLine * sizeof(char*));
             tabChaine[nCountLine] = chaine;
            printf("%s", tabChaine[nCountLine]); 
           nCountLine = nCountLine+1;
        }
        fclose(fichier);
    }
}
0

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

Posez votre question
SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
31 mai 2007 à 16:38
Un pointeur POINTE vers une valeur, il ne la stock pas ailleurs. Si la valeur sur laquelle il pointait change, il ne conservera pas la valeur précédente, il continuera de pointer sur cette même valeur peut-importe son contenue.

C++ (@++)<!--
0
SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
31 mai 2007 à 16:42
Pardon, c'est mal formulé. Je reformule:
Un pointeur POINTE vers une adresse, il ne stock pas de valeur. Si la
valeur contenue à l'adresse qu'il pointe change, il ne fera pas une copie de la valeur précédente et pointer sur sa nouvelle position, il continuera de pointer sur cette même adresse peut-importe
son contenue.
J'espère que c'est un peu plus clair.

C++ (@++)<!--
0
the_neo_81
Messages postés
4
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
31 mai 2007

31 mai 2007 à 16:52
ok merci bcp de ta réponse. (jai du la lire + d'une fois ^^)
donc mon probleme viendrai du pointeur?
je vais éssayer de rectifier tt ça.
Je vous tien au courant
0
Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
31 mai 2007 à 17:14
bon là tu récupères le contenu de ton fichier entier.
le caractère de saut de ligne est '\n'.
tu peux donc restructurer ta chaine en un tableau de chaine en scannant de bout en bout et en rangeant dans une ligne différente à chaque fois qu'on saute une ligne

sinon généralement j'utilise cette petite fonction :
int readstr(FILE *f,char *string)
{
    do
    {
        char * ok = fgets(string, 255, f);
        if (!ok)    return 0;
    } while (string[0] == '/' || string[0] == '\n');
    return 1;
}
Elle lit une ligne dans un fichier f et la stocke dans une chaine string
de plus elle ne tient pas compte des sauts de lignes répétés ainsi que des lignes commentaires c'est à dire qui commencent par /
enfin, la fonction retourne 1 si tt va bien et 0 si par exemple on arrive en fin de fichier.

Loki
0
Loki6
Messages postés
286
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
27 décembre 2009
2
31 mai 2007 à 17:15
oups j'ai un chapitre de retard

Loki
0