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 :

Lire un chemin depuis un fichier txt et ouvrir le fichier correspondant au chemin


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut Lire un chemin depuis un fichier txt et ouvrir le fichier correspondant au chemin
    Bonjour,
    Je cherche à faire un programme qui doit lire dans un fichier .txt un chemin qui renvoie vers un autre fichier. Une fois ce chemin récupéré, je souhaite ouvrir le fichier correspondant.
    J'ai écrit le code suivant mais je ne parvient pas à ouvrir le fichier par "chemfich1":
    Pourtant, quand je lui demande d'afficher chemfich1, le chemin semble correct.
    Je suis malheureusement super débutant et je ne comprend pas d'ou viens le problème. Je sollicite donc votre aide.
    Merci.


    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
    30
    31
    32
    33
    34
    35
    36
    #include<stdio.h>
    #include<string.h>
    const short MAXBUFSIZE=1000;
    int main()
    {
      char* chemFich1=new char[MAXBUFSIZE];
      char* chemFich2=new char[MAXBUFSIZE];
     
    //Lecture des noms de fichier a extraire depuis fichier extract.txt
    	FILE* fichInput;
    	fichInput=fopen("C:/Users/Desktop/calcul/extract.txt","r");
    	if(fichInput==NULL)
    	{
    		printf("ne peut ouvrir le fichier extract");
    	}
    	else
    	{
    	printf("fichier ouvert");
    	fgets(chemFich1,MAXBUFSIZE,fichInput);
    	printf(chemFich1);
    	fclose(fichInput);
    	}
     
    	FILE* fich1;
    	fich1=fopen(chemFich1,"r");
    	if(fich1==NULL)
    	{
    		printf("ne peut ouvrir le fichier 1");
    	}
    	else
    	{
    	printf("fichier 1 ouvert");
    	fclose(fich1);
    	}
      return 0;
    }

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 480
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      char* chemFich1=new char[MAXBUFSIZE];
      char* chemFich2=new char[MAXBUFSIZE];
    Ça, c'est valide en C++, pas en C (et c'est probablement une mauvaise habitude héritée du Java).

    Pas syntaxiquement incorret mais dangereux. Utilises « printf ("%s\n",chemFich1); » ou « puts (chemFich1) ».

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	fich1=fopen(chemFich1,"r");
    fgets() a probablement acquis le retour à la ligne qui suivait ton chemin dans ton fichier. Par conséquent, il y a un caractère surnuméraire au bout de ta chaîne qui est pris en compte par fopen(), qui naturellement ne trouve pas le nom ainsi formé.

    Vérifie que le dernier caractère de chemFich ne soit pas un '\n'.

    Bon courage.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Effectivement, le problème semble venir de '\n' en fin de ligne
    Comment puis-je retirer ce caractère?

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    En recherchant sa position (strchr() ) et en le remplaçant par '\0'

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/11/2012, 17h32
  2. Réponses: 7
    Dernier message: 11/11/2009, 15h19
  3. Réponses: 5
    Dernier message: 17/06/2008, 15h38
  4. Ouvrir un fichier.txt avec Notepad depuis un script PHP
    Par legastu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/07/2007, 11h40
  5. Indexer un fichier txt dans un autre fichier txt
    Par dimitri1233 dans le forum Langage
    Réponses: 1
    Dernier message: 22/12/2006, 16h06

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