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 :

ouvrir un fichier .ent


Sujet :

C++

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Par défaut ouvrir un fichier .ent
    Bonjour,

    J'aimerais ouvrir un fichier .ent, c'est le format utilisé pour décrire les protéines (PDB: Protein Data Bank).
    Il s'agit d'un simple fichier texte, qu'on peut ouvrir avec n'importe quel éditeur de textes mais pourtant la commande ifstream de <fstream> ne marche pas avec ce format .ent .
    Ca marche pourtant bien si je convertis le fichier en fichier .txt, seulement je vais utiliser une base de données d'environ 100 000 fichiers (protéines) donc ça m'arrangerait particulièrement d'avoir une commande qui marche en C++ (ou en C)

    Voilà les commandes avec lesquelles j'essaie d'ouvrir le fichier:


    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
    #include <iostream>
    #include <string>
    #include <fstream>
     
    using namespace std;
     
    int main(){
        ifstream fichier("d12asa_.ent", ios::in);
     
        if (fichier){
            cout << "fichier ouvert avec succès" << endl;
            fichier.close();
        }
        else
            cerr << "Impossible d'ouvrir le fichier !" << endl;
     
        return 0;
    }

    Merci beaucoup de votre aide!

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 636
    Par défaut
    Salut,

    Avant de commencer, je vais me permettre deux petites remarques rapides:
    1- la directive using namespace std; ne devrait plus être utilisée depuis près de vingt ans. Tu devrais t'habituer à utiliser les noms pleinement qualifiés (ex: std::cout, std::cin, std::string, std::ifstream, ... ) à la place

    2- A partir du moment où tu utilises la classe std::ifstream il est tout à fait normal que tu veux ouvrir un fichier en mode lecture seule, (ifstream == InputFileStream )... l'utilisation de ios::in n'est donc absolument pas nécessaire.

    Maintenant, pour répondre à ta question :

    Il n'y a que quatre raisons qui peuvent empêcher une application d'ouvrir un fichier:
    1. tu n'as pas les droits d'accès au dossier dans lequel se trouve le fichier (ou sur le fichier lui-même)
    2. tu as indiqué un mon de fichier incorrect
    3. le fichier n'existe purement et simplement pas ou
    4. le chemin d'accès au fichier ne correspond pas

    Quand tu écris "simplement" le nom de fichier "tel quel" (par exemle d12asa_.ent") l'application recherche le fichier correspondant directement dans le dossier à partir duquel elle est exécutée. Et, bien sur, si le fichier ne se trouve pas dans ce dossier particulier, l'application n'arrivera pas à l'ouvrir

    Les trois premiers cas sont "relativement" facile à résoudre: il faut t'assurer que tu dispose bel et bien des droits suffisants pour aller ouvrir le fichier et que le fichier existe dans le dossier dans lequel il est sensé se trouver.

    Le dernier point est parfois un peu plus compliqué à résoudre, car il est parfois difficile de déterminer à partir de quel dossier l'application est exécutée, surtout lorsqu'on essaye de l'exécuter au travers d'un EDI ou qu'on l'exécute au travers d'un raccourcis sous windows.

    Mais une solution "simple" (si le fichier qu'on essaye d'ouvrir se trouve dans le même dossier que l'application qui essaye de l'ouvrir) peut être de lancer un "invite de commande", de naviguer (à l'aide de la commande cd) jusqu'au dossier dans lequel se trouvent l'application et le fichier, puis de lancer l'application directement en ligne de commande
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Peut-on imaginer (surtout sous Windows ?) que le fichier est déjà ouvert par un autre programme ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2004, 13h55
  2. ouvrir un fichier
    Par sofiane61 dans le forum MFC
    Réponses: 3
    Dernier message: 10/01/2004, 23h04
  3. [java][Oracle]Ouvrir un fichier(blob) avec le browser
    Par marsup54 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 11/09/2003, 13h35
  4. [VBA-E] ouvrir un fichier .xls sans executer les macro
    Par lae_t2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2003, 17h07
  5. [Kylix] Ouvrir un fichier en étant dans KYLIX
    Par Jackepsi dans le forum EDI
    Réponses: 2
    Dernier message: 05/11/2002, 15h59

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