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 :

Obtenir le nom d'un fichier a partir d'un FILE


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 42
    Points
    42
    Par défaut Obtenir le nom d'un fichier a partir d'un FILE
    Comment fait on pour (re) obtenir l'adresse d'un fichier à partir d'un FILE* ?

    fstat ne contient aucun information à ce propos.

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Qu'entend tu par adresse?
    L'endroit ou il se trouve sur le disque dur?

    Je ne sais pas si c'est possible, mais si tu a reussi a ouvrir le fichier c'est bien que tu sais ou il se trouve non?
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 42
    Points
    42
    Par défaut
    (Premièrement désolé pour le delai écoulé)

    En fait je créé une fonction qui accepte comme argument des FILE.
    L'appelant et l'appelé étant dans des modules séparés je n'ai pas le nom initial du fichier.

    La fonction en question effectuant une analyse syntaxique, j'aimerai le nom du fichier pour préciser la position de l'erreur (c'est bien, je peut avoir la ligne mais l'utilisateur ne saura pas le fichier :-))

    ...bon, je l'accorde c'est un peu tordu.

    Merci
    ++

  4. #4
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Jpense pas qu'on puisse
    La seule chose à faire serait de passer le nom du fichier en plus du FILE * à la fonction
    On peut aussi créer une structure qui contient ces 2 infos, au choix

  5. #5
    Membre éprouvé Avatar de gnto
    Homme Profil pro
    Ingénieur système logiciel
    Inscrit en
    Janvier 2006
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur système logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 923
    Points : 1 210
    Points
    1 210
    Par défaut
    En faite si tu veux le nom du fichier avec le pointeur sur FILE c'est impossible.

  6. #6
    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 Syrmonsieur
    En fait je créé une fonction qui accepte comme argument des FILE.
    L'appelant et l'appelé étant dans des modules séparés je n'ai pas le nom initial du fichier.

    La fonction en question effectuant une analyse syntaxique, j'aimerai le nom du fichier pour préciser la position de l'erreur (c'est bien, je peut avoir la ligne mais l'utilisateur ne saura pas le fichier :-))
    Aucun moyen. C'est à toi de passer le nom en paramètre ou d'utiliser une structure qui regroupe les infos importantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct fichier
    {
       char const *fname;
       FILE *fp;
    };
    et de passer l'adresse de cette structure aux fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int f (struct fichier *p);
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Aucun moyen. C'est à toi de passer le nom en paramètre ou d'utiliser une structure qui regroupe les infos importantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct fichier
    {
       char const *fname;
       FILE *fp;
    };
    et de passer l'adresse de cette structure aux fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int f (struct fichier *p);
    Au passage une structure s'utilise comme une variable avec plusieures variables a l'interieur?
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  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 miron
    Au passage un structure sutilise comme un evariable avec plus sueres[1] variables a l'interieur?
    Un peu, oui. Ca permet surtout une organisation 'logique' des données, donc une meilleure conception du code.

    Ca ouvre vers des méthodes de conception et de réalisation plus avancées comme les types abstraits de données (TAD / ADT) et la programmation orientée objet...(POO / OOP)

    -----------------------
    [1] Moi aussi je fais des fautes de frappes, mais je me relis et je me corrige, même après avoir posté... Tu ne peux vraiment pas en faire autant ou le poil que tu as dans la main t'empêche d'atteindre la souris ?
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Débutant Avatar de miron
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 479
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Un peu, oui. Ca permet surtout une organisation 'logique' des données, donc une meilleure conception du code.

    Ca ouvre vers des méthodes de conception et de réalisation plus avancées comme les types abstraits de données (TAD / ADT) et la programmation orientée objet...(POO / OOP)
    OK Merci.
    -----------------------
    [1] Moi aussi je fais des fautes de frappes, mais je me relis et je me corrige, même après avoir posté... Tu ne peux vraiment pas en faire autant ou le poil que tu as dans la main t'empêche d'atteindre la souris ?
    Je relis et corrige souvent, c'est bien rare que je ne clic pas sur editer !!!
    Prenez le temps d'aller vite...

    Programme sous Windows, en C avec Code::Blocks, en Java JRE 1.6. avec Eclipse, en PHP/HTML/CSS avec Dreamweaver CS5 ou NotePad++ et en VBA sous avec Access 2010, Excel 2010, Word 2010 et Outlook 2010.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 44
    Points : 42
    Points
    42
    Par défaut
    OK merci quand même...

    Créer un surstructure comme type d'argument c'est bien ce que j'aurais fait si j'avait choisi le format de la fonction.

    De toute façon je ne sais pas si ma question a vraiment un sens puisque rien ne dit à priori qu'un fichier n'ait qu'un seul nom.

    ++

Discussions similaires

  1. [PHP 5.3] Obtenir le nom d'un fichier à partir d'une url dynamique
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2012, 11h02
  2. Réponses: 4
    Dernier message: 30/10/2007, 21h03
  3. Réponses: 1
    Dernier message: 06/12/2006, 15h24
  4. [VB.NET] Obtenir le nom d'un fichier
    Par eown dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/05/2006, 12h10
  5. Obtenir le nom d'un proces a partir de son PID
    Par Visiteur_33 dans le forum Windows
    Réponses: 6
    Dernier message: 16/02/2006, 11h03

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