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

Delphi Discussion :

Problème d’écriture de fichiers dans un sous répertoire.


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Problème d’écriture de fichiers dans un sous répertoire.
    Bonjours.

    Voici mon problème.

    J’ai une application qui se trouve dans son propre sous répertoire.
    Disons
    /APP
    Monprog.exe
    /Rep1
    /Rep de log

    Le programme dans sont répertoire de compilation arrive bien a créer des fichier dans le répertoire rep1.

    Mais des que je déplace mon programme sur une autre machine il n’arrive plus (Erreur : nom de fichier invalide). (Le chemin est obtenu via un Tedit qui est par défaut avec le chemin du répertoire « rep1»).
    Par contre si dans le programme je refais un chemin (dans le TEdit) par exemple c:\ les fichiers ce crée normalement.

    Une idée de ce qui pourrais causé cette erreur ? Je travail uniquement avec des chemin nom complet c'est-à-dire avec le répertoire courent de l’application comme base (chemin en Rep1\monfichier).

    Mercis d’avance.
    seb

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    La situation a avancé.

    A un moment du programme j’ouvre un assistant de sélection de fichier pour choisir une source de donnée. Ces donnée sont dans un autre répertoire si dans se répertoire disant je fais un répertoire /rep1 les données son crée dan ce nouveaux sous répertoire distant. Le pointeur de racine du programme change donc de place en cours de fonctionnement.

    Est t’il possible d’obtenir l’emplacement du point exe du programme en delphi ?

  3. #3
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      CheminAppli := ExtractFilePath(Application.ExeName);
    Voilou !

    @+

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le_chemin_De_Lapplication := ExtractFilePath(Paramstr(0));
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le_chemin_De_Lapplication := ExtractFilePAth(Application.exeName);
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Comme il perd le chemin entre temps et q’il ne pourra dont plus retrouver son propre.exe dans le nouveaux répertoire courent je penche donc pour param0 .
    Mercis beaucoup pour ton aide.

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut,

    ParamStr(0) ou Application.ExeName c'est du pareil au même.
    Puisque ExeName est implémenté ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function TApplication.GetExeName: string;
    begin
      Result := ParamStr(0);
    end;
    @+

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Claudius40
    Salut,

    ParamStr(0) ou Application.ExeName c'est du pareil au même.
    Puisque ExeName est implémenté ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function TApplication.GetExeName: string;
    begin
      Result := ParamStr(0);
    end;
    @+
    [Mode Flemard On]
    Avec le Paramstr(0) on ecrit moins de lettre que le application.ExeName
    [Mode Flemard Off]
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  8. #8
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    @Malatar
    Cette remarque était destinée à braoru puisqu'il hésitait entre les deux solutions.

    [Mode flemard On/Off] !!

    [Rire] [/rire]

    @+

Discussions similaires

  1. [Débutant] Compter les fichiers dans les sous répertoires d'un dossier
    Par Pouknouki dans le forum VB.NET
    Réponses: 9
    Dernier message: 25/02/2012, 13h16
  2. [XL-2003] recherche un fichier dans des sous répertoire et recopier son contenu
    Par hallscar dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/12/2011, 20h30
  3. unzip fichiers dans un sous-répertoire
    Par deny dans le forum Administration système
    Réponses: 8
    Dernier message: 18/09/2008, 12h55
  4. Suppression de fichiers dans des sous-répertoires
    Par astrolane dans le forum Langage
    Réponses: 2
    Dernier message: 07/09/2007, 15h22
  5. Recherche de fichiers dans des sous répertoires
    Par Mimi Bulles dans le forum Langage
    Réponses: 8
    Dernier message: 25/04/2006, 16h41

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