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 :

Visual Studio et lecture de fichier, hallucinant


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 59
    Points
    59
    Par défaut Visual Studio et lecture de fichier, hallucinant
    Salut à tous, bon je developpe un projet dans visual studio et à un moment j'ai cette fonction pour recuperer des données dans un 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    void recupererinfos(char **CodePharmacie, char **CodeLGO, char **Path)
    {
    	FILE* f = NULL;
        char chaine[TAILLE_MAX]="" ;
    	char *config="fic.txt";
     
        f = fopen(config, "r");
     
       if (f != NULL)
    	{
          if(fgets(chaine, TAILLE_MAX, f) != NULL)
    		{
    			*CodePharmacie = strdup(chaine);
    				if(fgets(chaine, TAILLE_MAX, f) != NULL)
    				{
    					*CodeLGO = strdup(chaine);
    					if(fgets(chaine, TAILLE_MAX, f)!= NULL)
    					{
    						*Path = strdup(chaine);
    					}
    					else {
    						printf("Erreur, il manque l'emplacement de sauvegarde dans le fichier .ini"); }
    				}
    				else {
    					printf("Erreur, il manque le code LGO dans le fichier .ini");  }
    		}
    		else {
    			printf("Erreur, il manque le code Pharmacie dans le fichier de configuration."); }
    			fclose(f);    
    	}
    	else {
    		printf("Erreur lors de l'ouverture du fichier de configuration de l'application.\n");}
     
    }
    Bon rien de bien extraordinaire.
    Seulement, lorsque je lance l'éxécutable (que j'ai compilé, evidemment) avec un .bat dans le repertoire bin/debug, tout se passe bien, le programme s'éxécute tout ça... lorsque je lançe DANS VISUAL STUDIO EXPRESS 2008 ce programme (avec la simple commande "run"), il ne trouve presque JAMAIS mon fichier, alors que c'est exactement le même executable que le lance avec mon .bat et je suis SUR qu'il est présent dans le repertoire.
    Comment expliquer ça ? visual studio est a ce point moisi ? j'espere pas

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Visual Studio n'exécute pas un programme dans le répertoire Debug/Release, mais dans celui du projet. Ne me demande pas pourquoi...

    Enfin, de toute façon, c'est réglable dans les options du projet.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Visual Studio n'exécute pas un programme dans le répertoire Debug/Release, mais dans celui du projet.
    euh... une recherche depuis le dossier parent de la solution avec le nom de l'exe et je ne trouve que celui que j'éxécute avec mon .bat, qui se trouve bien dans le repertoire du projet... je suis sur a 95 % que j'éxécute le même que celui que VS exécute quand je clique "run"... Ceci n'explique tjrs pas pourquoi il n'arrive pas a ouvrir mon fichier...
    Je peux sentir a des kilometres que la conclusion de ce topic va être: "Visual Studio bug, on sait pas pourquoi."

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 704
    Points
    704
    Par défaut
    Bonjour,
    Citation Envoyé par SgtBor Voir le message
    "Visual Studio bug, on sait pas pourquoi."
    C'est pas parce-que c'est estampillé "Microsoft" qu'il faut lui taper dessus direct !
    Et Médinoc t'as donné la réponse... Le répertoire courant de visual est celui du projet (fichier ".vproj" sous visual 2005). Par contre l'executable est bien celui qui est dans le répertoire "bin/debug".

    On peut très bien avoir un répertoire courant qui est différent du répertoire de l'exécutable. Place ton fichier à lire à coté de ton fichier projet visual, et tu verras que ça fonctionne.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Je n'ai rien contre Windows, simplement Visual Studio.

    Mais c'est dingue ça... je sais où est l'option pour situer l'exe dans les propriétés du projet, j'ai placé mon fichier .txt dans TOUS les répertoires possibles et imaginables de ma solution Visual studio (et même le dossier parent), mais toujours sans résultats...

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est l'option "répertoire de travail" qui compte.

    Ou bien, tu changes ton code pour utiliser GetModuleFileName() et rendre tes chemins de fichiers relatifs à l'exécutable plutôt qu'au "répertoire courant"...

    N'oublie pas que dès que tu ouvres un terminal ou une console, tu peux exécuter n'importe quel programme avec un "répertoire courant" différent du "répertoire de l'exe"!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Bon, pour être honnête, j'espérais trouver ici des gens avec des expériences similaires.
    Tout ce que vous me dites les gars, j'ai passé la matinée dessus, à vérifier- revérifier tous les répertoires de sorties de ma solution VS, pareil avec tous les répertoires et fichiers (.exe ou .dll) de sorties des 5 ou 6 projets VS présents dans ma solution, les éditeurs de liens, les dépendances de projet (un .exe utilise des dll générées sur les autres projets de la solution),...

    ENFIN BREF, si personne n'as déjà eu ça, j'ai plus qu'a installer GDB pour windows pour debugger mon .exe "à la main".
    Merci quand même les mecs.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Project Properties -> Configuration Properties -> Debugging -> Working Directory
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    OMG... Tu lis ce que j'écris des fois ?

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Oui, je me disais seulement que c'était le chemin que tu avais loupé.

    Sinon, il y a toujours la vérification manuelle:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char wd[FILENAME_MAX] ="";
    _getcwd(wd, FILENAME_MAX);
    puts(wd);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Points : 59
    Points
    59
    Par défaut
    Je testerai ça. Pas pour l'instant, je suis parti sur autre chose.
    Je feedbackerai, evidemment.
    Thanks

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

Discussions similaires

  1. Visual Studio problème avec le fichier utility
    Par raphchar dans le forum Débuter
    Réponses: 17
    Dernier message: 27/07/2010, 15h25
  2. Réponses: 2
    Dernier message: 28/03/2010, 17h24
  3. Visual Studio : ajout d'un fichier .inl
    Par Seabast888 dans le forum Débuter
    Réponses: 2
    Dernier message: 28/09/2009, 04h16
  4. Réponses: 4
    Dernier message: 19/09/2008, 10h04
  5. [PC] [Visual Object Cobol] Lecture de fichier .txt
    Par vince3132 dans le forum Cobol
    Réponses: 7
    Dernier message: 14/03/2008, 13h43

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