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 :

Tester l'existence d'une extension ?


Sujet :

C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut Tester l'existence d'une extension ?
    Bonjour tous,

    je cherche à tester l'existence d'une certaine extension dans mon répertoire de travail d'une manière la plus simple possible

    Je m'explique:
    je vais faire un calcul avec un logiciel qui va me délivrer un résultat du type:
    nomDuFichierResultat.dat
    ensuite je veux avec mon programme C++ ouvrir ce fichier resultat et lire dedans, le problème est que le nom du fichier peut dépendre de l'utilisateur, je voudrais donc juste détecter l'apparition d'un fichier ".dat" et l'ouvrir quelque soit son nom.

    1°) pour tester l'existence d'un fichier j'ai regardé dans la FAQ et je pense que cela est correct?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while (1)
    {
    std::ifstream fichier( "fichier.dat" ); // ou n'importe quel objet dérivant de std::ios
    if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
    {
        break
    }
    //doit je faire une pause ici?
    }
    j'ai néanmoins 2 questions:
    -le fait de faire une boucle ne va pas trop occuper le processeur inutilement? je ne devrai pas faire une pause dans la boucle pour qu'elle "boucle" toute les 10s par exemple?

    -comment faire si je ne connais pas le nom du fichier à priori?

    2°) en se qui concerne la pause pas de problemes, il suffit de faire

    sleep avec un S majuscule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include <windows.h>
    int i; //millisecond
    Sleep(i);
    En espérant que vous pourrez m'aider pour le 1°)

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Moi je propose une nouvelle solution
    Au lieu de tester l'existence d'un fichier supposé (surtout si on ne connait pas le nom de ce fichier), je propose donc de lire le dossier ou doit se trouver se fichier, afin de connaitre les fichiers qui sont dans ce dossier (soit, on aura une liste de noms de fichiers). Ainsi, il sera très simple de trouver les fichiers ayant pour extension '.dat'

    Par contre ... rien de standard en C++ (il faudrait voir du coté de boost) mais en C on peut faire comme suit: http://c.developpez.com/faq/index.ph...HIERS_dir_list
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci littlewhite pour cette premiere piste.

    1°) je vais essayé de voir avec ton idée et je vais essayé une autre solution: je vais voir si il est possible avec mon logiciel de calcul d'écrire le nom du fichier de calcul dans un fichier texte.
    Ainsi mon programme lira ce fichier texte et le nom du fichier .dat


    2°) que penses tu pour ma question concernant la boucle while avec une pause au milieu? la presence d'une pause est obligatoire non pour ne pas trop user de capacité du precesseur pour rien? (je dis cela car j'aurais mon calcul qui s'effectuera en meme temps que mon programme C++ sera dans la boucle while)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    2°) que penses tu pour ma question concernant la boucle while avec une pause au milieu? la presence d'une pause est obligatoire non pour ne pas trop user de capacité du precesseur pour rien? (je dis cela car j'aurais mon calcul qui s'effectuera en meme temps que mon programme C++ sera dans la boucle while)
    La boucle permet principalement de ne pas mettre le CPU à 100% ... par contre, cela ne permet pas vraiment de rendre l'application répondante aux interactions (pour cela il faudrait un thread)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    La boucle permet principalement de ne pas mettre le CPU à 100% ... par contre, cela ne permet pas vraiment de rendre l'application répondante aux interactions (pour cela il faudrait un thread)
    d'accord, j'ai deja entendu parlé de thread mais rapidement. cela permet de faire des calculs parallele?

    es ce que c'est cela qui correspond à ce que je cherche ?
    http://khayyam.developpez.com/articl.../multithreads/

    Ca à l'air très compliquéà mettre en place, non ?

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Citation Envoyé par 21did21 Voir le message
    d'accord, j'ai deja entendu parlé de thread mais rapidement. cela permet de faire des calculs parallele?

    es ce que c'est cela qui correspond à ce que je cherche ?
    http://khayyam.developpez.com/articl.../multithreads/

    Ca à l'air très compliquéà mettre en place, non ?
    Oui, l'article de khayyam () parle des threads (même si je conseille les threads Posix (mais c'est parce que je suis sous Linux)

    Personnellement, je ne trouve pas que les threads sont dur à mettre en place ... par contre, il faut être très précautionneux sur la synchronisation des threads (qui ramène beaucoup de code)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    super merci,

    je vais donc essayer de comprendre ces "threads"

  8. #8
    En attente de confirmation mail

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Points : 3 311
    Points
    3 311
    Par défaut
    Pour les threads tu as plusieurs possibilité :
    - Les faire à la main à partir des headers fourni par les API système
    - Utiliser ceux du prochain standard si ton compilateur est à jour
    - Utiliser une bibliothèque, et là encore tu as le choix. Je n'ai pas encore tester, mais ceux de Poco m'ont l'air vraiment bien : simple à utiliser, et introduction bien faite http://pocoproject.org/slides/130-Threads.pdf (en autre bibliothèques tu as : boost, openmp, tbb, ace et surment d'autre)

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par Flob90 Voir le message
    Pour les threads tu as plusieurs possibilité :
    - Les faire à la main à partir des headers fourni par les API système
    - Utiliser ceux du prochain standard si ton compilateur est à jour
    - Utiliser une bibliothèque, et là encore tu as le choix. Je n'ai pas encore tester, mais ceux de Poco m'ont l'air vraiment bien : simple à utiliser, et introduction bien faite http://pocoproject.org/slides/130-Threads.pdf (en autre bibliothèques tu as : boost, openmp, tbb, ace et surment d'autre)
    merci pour ce lien il a l'air pas mal.
    j'essaierai tout cela, si j'ai besoin d'aide je poserai un sujet

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

Discussions similaires

  1. Tester l'existence d'une extension ?
    Par fly06 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 29/07/2008, 16h08
  2. Réponses: 3
    Dernier message: 19/08/2005, 15h24
  3. tester l existance d une table
    Par mick84m dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/04/2005, 12h24
  4. [JDBC]Tester l'existence d une table
    Par juflata dans le forum JDBC
    Réponses: 7
    Dernier message: 29/06/2004, 16h27
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 14h55

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