IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

stocker un fichier dans une chaine


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 150
    Points : 41
    Points
    41
    Par défaut stocker un fichier dans une chaine
    salut tout le monde,
    je souhaite lire un fichier avec C et stoquer son contenu dans une variable de type char*:









    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    int fonction(char *chemin)
    {
    char *res=(char *)malloc((strlen(res)+1) *sizeof(char));/*la chaine danslaquelle je stoque le contenu du fichier*/
    char *ch=(char *)malloc((strlen(ch)+1) *sizeof(char));
    ch[0]='\0';
    char *ChercheUs=" MaCondition";
     
     
    FILE *fic;
     
    char ligne_lue[512];
    char *recherche1;
    fic = fopen(chemin, "r"); // ouvrir en lecture	
    while(fgets(ligne_lue, 512, fic) != NULL)
    {
          recherche1=strstr(ligne_lue,"var");
          if(!recherche1)
          {
     
            res=strcat(ch,ligne_lue);
             res=strcat(res,"\n");
     
     
          }
        else
          {
     
            res=strcat(ChercheUs,res);
     
          }
    }
    printf("%s",res);
     
    return 1;
    }

    Mais j'ai toujour 1 problème lors de l'éxécution.
    merci cordiallement.

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 947
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    A priori, c'est normal d'avoir toujours 1 puisque tu demandes à la fonction de retourner 1.

    Ton malloc est incompréhensible, sauf si j'ai raté quelquechose. A priori, il faut d'abord connaitre la taille du fichier avant de lui réserver de la place. Tu aurais peut-être plus de réponses si tu donnais un code minimaliste complet qui compile et reproduit ton problème au lieu de la fonction. Tu ne vérifies pas si le fichier s'est ouvert correctement. Au retour de fopen, fic doit être différent de NULL.

    A+

    Pfeuh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #include <stdlib.h>
    #include <stdio.h>
    #include <assert.h>
     
    int fonction(char *chemin)
    {
        FILE* fic;
        size_t size;
        char* buffer;
        fic = fopen(chemin, "rb");
        if(fic == NULL)
        {
            return EXIT_FAILURE;
        }
        fseek(fic, 0, SEEK_END); // goes to the end
        size = ftell(fic);       // gets position (size)
        fseek(fic, 0, SEEK_SET); // goes to the file's begining
        buffer  = malloc((size + 1) *sizeof(char));
        fread(buffer, sizeof(char), size, fic);
        fclose(fic);
        printf("%s",buffer);
        return EXIT_SUCCESS;
    }
     
    int main(void)
    {
        return fonction("main.c");
    }

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/09/2017, 17h03
  2. [MySQL] stocker un fichier dans une table
    Par mikebranque dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/08/2006, 11h04
  3. [Débutante]Stocker des fichiers dans une BD
    Par bouba83 dans le forum Access
    Réponses: 5
    Dernier message: 19/05/2006, 08h41
  4. extraire le nom d'un fichier dans une chaine sauf le car -
    Par digger dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 13/12/2005, 00h02
  5. Copier un fichier dans une chaine
    Par Fry dans le forum C++
    Réponses: 4
    Dernier message: 30/09/2005, 00h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo