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

Dev-C++ Discussion :

Chemin et nom de fichier sous Dev C++


Sujet :

Dev-C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Yazoo70
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 133
    Par défaut Chemin et nom de fichier sous Dev C++
    Salutations,

    Je suis en train de faire mon stage de fin de première année de BTS IG.
    Je fais un petit programme qui permet de générer des fichiers .bat pour modifier la configuration de la connection réseau en fonction du lieu ou se trouve le PC.
    J'utilise Dev C++.

    Au moment de la création du fichier bat, j'aimerais que l'utilisateur puisse choisir le nom qu'il veut lui donner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    cout<<"Nom du fichier voulu:";
    cin>>nomfichier;
     
    ofstream fc("C:/DocsStan/Programme/dossierbats/testbat.bat");
    ...
    mais je n'arrive pas à remplacer le nom du fichier (ici testbat.bat) par le nom que l'utilisateur rentre.
    Si je ferme les guillemets pour placer ma variable, dev cpp me dit qu'il expect une parenthèse apres la fermeture du guillement.
    et si je met "nomfichier" à la place de "testbat.bat', ben il appellera le fichier "nomfichier" :p
    Donc la, je coince

    Autre question, comment prendre en compte les espaces dans le chemin d'acces au fichier ?
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ofstream fc("C:/DocsStan/Programme/dossierbats/testbat.bat")
    Ici, si je renomme mon répertoire "DocsStan" en "Docs Stan", ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ofstream fc("C:/Docs Stan/Programme/dossierbats/testbat.bat")
    Dev cpp arrete la lecture du chemin au premier espace qu'il rencontre donc C:/Docs, qui n'existe pas donc erreur .

    Merci d'avance à tous ceux qui prendront le temps de lire mon message et encore mieux, d'y répondre

    +

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string path = "C:/DocsStan/Programme/dossierbats/" + nomfichier;
    ofstream fc(path.c_str());
    2/ Es-tu sûr que c'est à ce moment-là que l'espace pose problème ? Ce n'est pas plutôt lors d'une éventuelle saisie, ou un appel à une autre fonction ?

  3. #3
    Membre éclairé Avatar de Yazoo70
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 133
    Par défaut
    Citation Envoyé par Laurent Gomila
    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string path = "C:/DocsStan/Programme/dossierbats/" + nomfichier;
    ofstream fc(path.c_str());
    2/ Es-tu sûr que c'est à ce moment-là que l'espace pose problème ? Ce n'est pas plutôt lors d'une éventuelle saisie, ou un appel à une autre fonction ?
    1/ Tu peux m'expliquer un peu ta réponse stp??
    en dehors de mes bases je suis un peu perdu, par exemple pourquoi utiliser std::string pour déclarer la variable et pas tout simplement string ??
    ensuite pourquoi le c_str() apres le nom de la variable??

    Edit:Merci, ça marche! mais std:: et c_str() m'intriguent.

    2/Non, je suis sur que c'est dans le chemin vers le fichier :'(
    D'autre part, quand je rentre un espace dans les string, genre le nom du fichier, le nom de la connection reseau à laquelle les modifications doivent s'appliquer,etc... à chaque fois le programme plante... Je pense que Dev C++ à un problème avec les espaces, ou alors c'est moi

    Edit: Je peux fournir le code complet, mais à mon avis il sera plutôt indigeste du fait de mon inexpérience :'(

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651

  5. #5
    Membre éclairé Avatar de Yazoo70
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 133
    Par défaut
    Ok merci,
    j'ai compris pour le std, par contre le c_str() ca reste flou :p
    Sinon pour l'espace qui genait, c'est celui dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    if(choix==1){system("c:/Docs Stan/Programme/dossierbats/testbat.bat");}
    ...
    quand je propose de lancer le .bat directement dans la meme fenêtre, il dit:
    'c:/Docs' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commande
    sinon pour éviter les problèmes d'espaces dans les string, j'utilise getline(cin,chaine) comme c'est écrit dans la FAQ
    Mais quand je l'utilise il faut que je créé un fake getline comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    getline(cin,rien);// Ce getline est créé pour palier le problème
    getline(cin,nomco);
    ...
    parceque le premier getline écrit plante à chaque fois,
    c'est à dire qu'il fait comme si il n'existait pas et écrit la ligne suivante juste apres, ce qui donne un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    cout<<"Quel est votre nom:"<<endl;
    getline(cin,nom);
    cout<<"Quel est votre prenom:"<<endl;
    getline(cin,prenom);
    ...
    ce qui donne à l'écran de la console( _ representant le curseur, je peux répondre à la deuxième question)
    :
    Quel est votre nom:Quel est votre prenom:_
    bref c'est sportif, mais c'est comme ca qu'on apprends (du moins j'espère :p )

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    salut,
    rajoute un guillemet suplémentaire en début et fin de ton appel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("\"c:/Docs Stan/Programme/dossierbats/testbat.bat\"");

Discussions similaires

  1. [AC-2007] chemin et nom de fichier dans un FileDialog
    Par Rémi GAUDINAT dans le forum Contribuez
    Réponses: 0
    Dernier message: 18/02/2012, 12h53
  2. [AC-2003] Séparer chemin et nom de fichier
    Par Flop1908 dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/07/2010, 14h33
  3. Mauvais nom de fichier sous internet explorer 6
    Par Jidefix dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 25/09/2009, 16h26
  4. [E-07] récuperer le chemin et nom du fichier xls
    Par law56100 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/03/2009, 17h40
  5. [Batch] chemin absolu / Nom de fichier
    Par andlio dans le forum Windows
    Réponses: 3
    Dernier message: 03/08/2006, 03h40

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