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 :

nommer un fichier


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut nommer un fichier
    bonjour, je voudrai créer un fichier texte en le nommant par la date du jour avec fopen:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     _strdate(bli);
        printf("%s\n",bli);
     bla=fopen (bli,"a+");
    ça marche pas

  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 : 48
    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
    Normal ...

    Tu devrais savoir que printf affiche la chaîne sur le flux standard de sortie donc stdout. Toi du dois créer une chaîne donc c'est sprintf qu'il te faut ! Attention, bli doit être un espace valide donc soit un tableau de char statique ou bien un espace alloué dynamiquement !
    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 averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    merci mais ça marche pas, mon programme se compile mais ça plante voila ma fonction:
    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
    int main ()
    {
            char bli [9];
         char blo []="xxxxxxxxx.txt";
              char cours [9];
              FILE *entree, *sortie;
     
           _strdate(bli);
     
        sprintf( blo, "%s.txt", bli );
     
     
     
     
                     sortie=fopen (blo,"a+");
     
     
     
     
     
                          fclose (sortie);
     
        return 0;
    }

  4. #4
    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 : 48
    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
    Et ca te sert à quoi de déclarer ton tableau blo de cette manière ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char blo []="xxxxxxxxx.txt";
    Pourquoi ne pas faire:
    Tout simplement !
    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 !

  5. #5
    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 hitcher48
    merci mais ça marche pas, mon programme se compile mais
    Merci de poster du code compilable....
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:2: warning: function declaration isn't a prototype
    main.c: In function `main':
    main.c:6: error: `FILE' undeclared (first use in this function)
    main.c:6: error: (Each undeclared identifier is reported only once
    main.c:6: error: for each function it appears in.)
    main.c:6: error: `entree' undeclared (first use in this function)
    main.c:6: error: `sortie' undeclared (first use in this function)
    main.c:6: warning: left-hand operand of comma expression has no effect
    main.c:7: warning: implicit declaration of function `_strdate'
    main.c:8: warning: implicit declaration of function `sprintf'
    main.c:9: warning: implicit declaration of function `fopen'
    main.c:10: warning: implicit declaration of function `fclose'
    main.c:5: warning: unused variable `cours'
    main.c:6: warning: statement with no effect
    Process terminated with status 1 (0 minutes, 1 seconds)
    5 errors, 8 warnings
    _strdate() n'est pas standard. Si il y a des '/' dans la date, ça pas le faire...

    Ceci fonctionne :
    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
     
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    void strdate (char *s)
    {
       strcpy (s, "29-04-2007");
    }
     
    int main (void)
    {
       char bli[9];
       char blo[] = "xxxxxxxxx.txt";
       FILE *sortie;
       strdate (bli);
       sprintf (blo, "%s.txt", bli);
       sortie = fopen (blo, "a");
       if (sortie != NULL)
       {
          fclose (sortie);
     
          system ("dir *.txt");
       }
       return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     Le volume dans le lecteur C s'appelle BOOT
     Le numéro de série du volume est 4C05-16D3
     
     Répertoire de C:\dev\forums
     
    29/04/2007  12:59                 0 29-04-2007.txt
    23/04/2007  18:00           310 491 reel.txt
    25/04/2007  09:36               715 test.txt
                   3 fichier(s)          311 206 octets
                   0 Rép(s)   2 838 040 576 octets libres
     
    Press ENTER to continue.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    code compilable qui plante

    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
    #include <stdio.h>
    #include <iostream>
     
    using namespace std;
     
    int main ()
    {
            char bli [9];
         char blo []="xxxxxxxxxx.txt";
              char cours [9];
              FILE *sortie;
     
           _strdate(bli);
     
        sprintf( blo, "%s.txt", bli );
     
     
     
     
                     sortie=fopen (blo,"w");
     
     
     
     
     
                          fclose (sortie);
     
        return 0;
    }

  7. #7
    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 hitcher48
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <stdio.h>
    #include <iostream>
     
    using namespace std;
    Pas du C (et du mauvais C++). Relis ma réponse précédente, je l'ai complétée.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    si j'écris une fonction qui supprime les '\' ça marchera peut être alors?

  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 hitcher48
    si j'écris une fonction qui supprime les '\' ça marchera peut être alors?
    Il y a des '\' dans ton format de date ? Curieux, j'aurais dit '/'... Il suffit de l'afficher...

    Tu peux les remplacer par des '-' ou des '_' ou créer directement ta fonction strdate() avec
    time()
    struct tm
    localtime()
    strftime()

    ceci peut aider :

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

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    je vais essayer, merci pour votre aide

Discussions similaires

  1. Nommer le fichier PDF avec un Response.BinaryWrite() c#
    Par alexfayard dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/10/2008, 10h44
  2. Nommer un fichier exécutable
    Par arthy dans le forum Fortran
    Réponses: 2
    Dernier message: 21/10/2007, 17h30
  3. Nommer un fichier Excel
    Par tsharlz dans le forum MATLAB
    Réponses: 1
    Dernier message: 15/12/2006, 16h26
  4. nommer un fichier texte avec la date du jour
    Par avantoux dans le forum Windows
    Réponses: 4
    Dernier message: 02/02/2006, 09h57
  5. Nommer un fichier de manière intéractive
    Par sducos81 dans le forum C++
    Réponses: 2
    Dernier message: 27/09/2005, 10h44

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