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 :

utilisation de malloc dans un fichier


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Par défaut utilisation de malloc dans un fichier
    Salut

    Je commence a m'interessé au langage C et j'aimerais savoir si c'etais possible d'utiliser la fonction malloc/realloc dans un fichier (j'utilise les structures)

    j'aimerais aussi savoir (j'ai oublié... oups!) comment on récupere une chaine de caractere dans une structure.


    merci de me conseiller

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par nemesys971
    Je commence a m'interessé au langage C et j'aimerais savoir si c'etais possible d'utiliser la fonction malloc/realloc dans un fichier (j'utilise les structures)
    Dans un fichier on lit et récupère des informations donc si tu pouvais être plus précis sur ta pensée !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Par défaut
    en faite je voudrais savoir si c'est mieu d'utiliser les structures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    struct InfoTirage
    {    int Tab_Numero;
        int Tab_NbFois;
        float Tab_Pourcentage;
        char Tab_date[10];
        int Tab_Ecart;
        int NbTirage;
    };
    struct InfoTirage *PtrTirage;
    ou l'ecriture "banale" sachant que toutes mes informations seront enregistrée dans un fichier text (test.txt)


  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Citation Envoyé par nemesys971
    en faite je voudrais savoir si c'est mieu d'utiliser les structures

    ou l'ecriture "banale" sachant que toutes mes informations seront enregistrée dans un fichier text (test.txt)
    bien le bonjour,

    écriture banale ?
    tu parles de quoi ?

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Huumm j'ai pas compris plus qu'au départ, tu veux faire quoi avec ta structure ? Elle sert à quoi ? Quels genre d'informations tu stock ? Sous quel mode tu compte faire l'enregistrement dans le fichier (texte ou binaire) ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par nemesys971
    en faite je voudrais savoir si c'est mieu d'utiliser les structures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    struct InfoTirage
    {    int Tab_Numero;
        int Tab_NbFois;
        float Tab_Pourcentage;
        char Tab_date[10];
        int Tab_Ecart;
        int NbTirage;
    };
    struct InfoTirage *PtrTirage;
    ou l'ecriture "banale" sachant que toutes mes informations seront enregistrée dans un fichier text (test.txt)
    Tout cela n'a aucun rapport avec malloc(). Si j'ai bien compris, (pas évident...), tu voudrais savoir si il vaut mieux enregistrer les données au format texte ou au format binaire brut, c'est ça ?

    Des éléments de réponse ici :

    http://emmanuel-delahaye.developpez....s.htm#fichiers

    Pose des questons si tu ne comprends pas.

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par nemesys971
    Salut

    Je commence a m'interessé au langage C et j'aimerais savoir si c'etais possible d'utiliser la fonction malloc/realloc dans un fichier (j'utilise les structures)
    Gné ? Fais gaffe encore une fois cela risque de figurer au bêtisier
    Pour la bonne et unique raison que malloc c'est pour allouer de manière dynamique de la mémoire bref des données alors qu'un fichier à ma connaissance comporte des données statiques

    en faite je voudrais savoir si c'est mieu d'utiliser les structures

    struct InfoTirage{ int Tab_Numero; int Tab_NbFois; float Tab_Pourcentage; char Tab_date[10]; int Tab_Ecart; int NbTirage;};struct InfoTirage *PtrTirage;
    Il suffit d'ouvrir un fichier en binaire avec fopen et écrire avec fwrite.
    Ecrire d'abord le nombre d'instances de InfoTirage puis n*InfoTirage.
    Pour relire lire le nombre n d'instances , allouer n avec malloc cette fois ci et les données sur disque de InfoTirage avec fread

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Par défaut
    ok j'en ai pri note

    Question quand je sauvegarde ca ne me sauvegarde par les chiffres mais des carrés pourquoi?

    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
     
        printf("\n\n\t Saisir le chiffre ");
        scanf("%d", &UnTirage.Numero);
     
        printf("\n\n\t Saisir le NbTirage ");
        scanf("%d", &UnTirage.NbTirage);
     
        printf("\n\n\t Saisir le NbFois ");
        scanf("%d", &UnTirage.NbFois);
     
        printf("\n\n\t Saisir le Ecart ");
        scanf("%d", &UnTirage.Ecart);
     
     
        if (fwrite(&UnTirage, sizeof(struct InfoTirage),1,PtrFichier)!=-1)
        {    printf("\n\n\t Ecriture reussi!\n");
        }

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par nemesys971
    Question quand je sauvegarde ca ne me sauvegarde par les chiffres mais des carrés pourquoi?
    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
     
        printf("\n\n\t Saisir le chiffre ");
        scanf("%d", &UnTirage.Numero);
     
        printf("\n\n\t Saisir le NbTirage ");
        scanf("%d", &UnTirage.NbTirage);
     
        printf("\n\n\t Saisir le NbFois ");
        scanf("%d", &UnTirage.NbFois);
     
        printf("\n\n\t Saisir le Ecart ");
        scanf("%d", &UnTirage.Ecart);
     
     
        if (fwrite(&UnTirage, sizeof(struct InfoTirage),1,PtrFichier)!=-1)
        {    printf("\n\n\t Ecriture reussi!\n");
        }
    Si tu veux un enregistrement au format texte, il faut définir un format (CSV, par exemple, un enregistrement par ligne) et utiliser fprintf().

    fwrite() fait du raw (pas de conversion), le contenu de la mémoire est enregistré dans le fichier directement tel quel.

    Comme ce n'est pas du texte, c'est illisible (notamment les valeurs numériques...)

    http://emmanuel-delahaye.developpez....s.htm#fichiers

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Par défaut
    Je ne comprend pas pourquoi dans ma boucle il y a un bugg ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             scanf("%d", &UnTirage.Numero);*/
    Voici ma boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        for (i=0; i<=49; i++)
        {
            /*printf("\n\n\t Saisir le Numero");
            scanf("%d", &UnTirage.Numero);*/
     
            printf("\n\n\t Saisir le NbSorti");
            scanf("%d", NbSorti);
            printf("rslt %d", NbSorti);
     
            Pourcent=((NbSorti / Nb_tirage) * 100);
            printf("%f", Pourcent);
        }
    la seconde erreure se passe au moment ou je veut faire mon calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             Pourcent=((NbSorti / Nb_tirage) * 100);

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par nemesys971
    Je ne comprend pas pourquoi dans ma boucle il y a un bugg ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             scanf("%d", &UnTirage.Numero);*/
    C'est quoi un bugg ligne ? Ce que je vois surtout, c'est un bout de commentaire (*/). C'est normal ?
    Voici ma boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        for (i=0; i<=49; i++)
        {
            /*printf("\n\n\t Saisir le Numero");
            scanf("%d", &UnTirage.Numero);*/
     
            printf("\n\n\t Saisir le NbSorti");
            scanf("%d", NbSorti);
            printf("rslt %d", NbSorti);
     
            Pourcent=((NbSorti / Nb_tirage) * 100);
            printf("%f", Pourcent);
        }
    la seconde erreure se passe au moment ou je veut faire mon calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             Pourcent=((NbSorti / Nb_tirage) * 100);
    Ton code est incomplet, on ne peut pas le tester. D'autre past, tu parles d'erreur, comme si c'était évident. Quelles erreurs ? Qui produit l'erreur ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utilisation du onsubmit dans un fichier JS
    Par Sheriff dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/10/2006, 12h18
  2. Utilisation de $PHP_SELF dans un fichier inclus
    Par Dia_FR dans le forum Langage
    Réponses: 6
    Dernier message: 20/09/2006, 18h36
  3. Réponses: 3
    Dernier message: 29/05/2006, 17h04
  4. [XSL] Utiliser des CSS dans un fichier XSL
    Par alainme dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 13/04/2005, 10h47
  5. [VB.NET] Utiliser le TRIM dans un fichier?
    Par Pleymo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/03/2005, 17h12

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