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 :

Recherche d'un fichier ayant un nom composé


Sujet :

C

  1. #1
    Nouveau membre du Club Avatar de tchalkost
    Inscrit en
    Juillet 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 102
    Points : 35
    Points
    35
    Par défaut Recherche d'un fichier ayant un nom composé
    a tous

    Voici mon problème. Je dois rechercher un fichier dans un repertoire, qui comporte un nom composé d'un paramètre.

    Exemple: "V:\Dossier\AZERTY-123456-%paramètre_a_insérer%.dvi"
    Mon paramètre a insérer est une date. Le fichier en question se créé automatiquement en y insérant la date du jour de sauvegarde.

    Mon but est de rentrer une date quelconque, qui sera ensuite ajouté au nom du fichier que je cherche.
    Le format de la date : JJMMAAAA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FILE *PCA = fopen ("V:\Dossier\AZERTY-123456-%paramètre_a_insérer%.dvi", "r");
    	
    if (PCA == NULL)
    {
    	printf("Le fichier n'existe pas !\n");
    }
    else
    {
    	mkdir("youpi", "r");
    	printf("Le fichier existe !\n");
    	//Si le fichier existe on peut effectuer des opérations
    }
    Je n'est pas trouvé mon bonheur en recherchant dans les topics et donc si quelqu'un pourrait m'aider ...

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Construit ton nom de fichier avec sprintf().

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut
    Citation Envoyé par DaZumba
    Construit ton nom de fichier avec sprintf().
    pas mieux

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tchalkost
    Le format de la date : JJMMAAAA
    Rien à voir avec le C, mais je suggère le format international qui est : AAAAMMJJ. Ca facilite le classement...

  5. #5
    Nouveau membre du Club Avatar de tchalkost
    Inscrit en
    Juillet 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 102
    Points : 35
    Points
    35
    Par défaut
    Merci pour les réponses.
    N'ayant jamais utilisé "sprintf()", je suis en train de chercer comment ça fonctionne.

    Pour la suggestion du format de la date, je suis tout a fait d'accord que le format international doit être mieux, mais le problème c'est que je n'est pas le choix

  6. #6
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par tchalkost
    Merci pour les réponses.
    N'ayant jamais utilisé "sprintf()", je suis en train de chercer comment ça fonctionne.
    Comme printf, mais ça "écrit" dans une chaîne de caractères.
    Si tu en as la possibilité, utilises plutôt snprintf.

  7. #7
    Nouveau membre du Club Avatar de tchalkost
    Inscrit en
    Juillet 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 102
    Points : 35
    Points
    35
    Par défaut
    Si j'ai bien compris la syntaxe du sprintf s'écrit de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int parametre=12, j;
    char buffer[BUFSIZ];
    j = sprintf(buffer, "yes-%d.txt", parametre);
    Maintenant là ou je ne vois pas comment est-ce que je pourrai lier la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *PCA; = fopen ("yes.txt", "r");
    avec les nouveaux paramètre j'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *PCA = fopen (j, "r");
    mais ça m'a mis une erreur windows, je crois que j'essayais d'écrire sur un space déja ouvert ?

    XX Est-ce que mon raisonnement est correct jusqu'à présent ?

    En faite ce qui me déplait dans cette histoire c'est qu'il faut déclarer le fichier a chercher avant toutes manipulation (ce qui est normal), alors que moi je voudrais saisir un paramètre en cours de programme pour ensuite l'intégrer au nom de la recherche du fichier.

    XX Est-ce que je peux déclarer un fichier sans nom (juste dire qu'il y aura un fichier) et ensuite lui attribuer un nom par la suite ?

    Merci

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par tchalkost
    Si j'ai bien compris la syntaxe du sprintf s'écrit de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int parametre=12, j;
    char buffer[BUFSIZ];
    j = sprintf(buffer, "yes-%d.txt", parametre);
    Maintenant là ou je ne vois pas comment est-ce que je pourrai lier la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FILE *PCA; = fopen ("yes.txt", "r");
    OK. Tu as construit une chaine dans un tableau de char. Maintenant, il faut passer l'adresse du premier élément de ce tableau, c'est à dire
    ou
    ou
    à fopen(), soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       fopen (buffer, je_te_laisse_mettre_la_suite);
    Poste ton code si tu as un problème...

    (ne met pas des ';' n'importe où. Si tu ne connais pas la syntaxe du C, ben ça s'apprend... Il y a des références de tutoriels et de livres sur mon site...)

  9. #9
    Nouveau membre du Club Avatar de tchalkost
    Inscrit en
    Juillet 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 102
    Points : 35
    Points
    35
    Par défaut
    Voilà comment j'ai modifié mon code et ça a l'air de fonctionner :
    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
    void main (void)
    {
    	//Declarations de variable
    	FILE *PCA;
    	int parametre, j;
    	char buffer[BUFSIZ];
     
    	//Saisie du parametre de recherche
    	printf("saisir  parametre :\n");
    	scanf("%d", &parametre);
     
    	j = sprintf(buffer, "yes-%d.txt", parametre);
     
    	PCA = fopen (buffer, "r");
    	//On essaye d'ouvrir le fichier pour verifier qu'il existe
    	if (PCA == NULL)
    	{
    		printf("Le fichier n'existe pas !\n");
    	}
    	else
    	{
    		printf("Le fichier existe !\n");
    	}
    }
    Merci encore pour toutes les précisions.

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

Discussions similaires

  1. [SP-2007] Recherche "Partage de fichier" : titre OU nom fichier
    Par SONY30 dans le forum SharePoint
    Réponses: 2
    Dernier message: 07/11/2011, 10h25
  2. Supprimer fichiers ayant même nom mais extension différente
    Par jomajo dans le forum Général Java
    Réponses: 9
    Dernier message: 25/02/2011, 15h13
  3. Recherche de fichiers dont le nom commence par..
    Par ValyGator dans le forum C++
    Réponses: 4
    Dernier message: 22/05/2006, 00h08
  4. Recherche d'un fichier d'aprés son nom
    Par gids01 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 10/05/2006, 10h19
  5. Réponses: 3
    Dernier message: 02/03/2006, 09h49

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