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
Rejoignez-nous