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

VB 6 et antérieur Discussion :

[VB6]changer de répertoire de travail


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut [VB6]changer de répertoire de travail
    Bonjour,
    j'ai une application qui travaille avec un fichier xml, or
    ce fichier xml fait référence à des fichiers de la façon suivante:
    "..\..\funct\tour\an\tour.xml",
    par tatonement j'ai trouvé que le répertoire de travail de mon programme devrait être "C:\Cild\toir\tet\rev_1\Appli\perc\functl\perc"
    En fait j'ai deux problèmes: j'entre l'adresse du fichier xml que voici dans cet exemple: "C:\Cild\toir\tet\rev_1\Appli\perc\functl\perc\an\perc.xsyn" je voudrai récupérer "C:\Cild\toir\tet\rev_1\Appli\perc\functl\perc" et le mettre comme répertoire de travail... bref je sais pas comment attaquer..
    c'est un peu compliqué si c'est pas compréhensible dite le moi et je reformulerai

    merci d'avance pour votre aide

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    on choisit en général astucieusement comme répertoire de travail un sous-répertoire du répertoire dans lequel se trouve l'appli.
    Pourquoi ? par ce que le répertoire de l'appli est toujours restitué par App.Path ... (le reste est facile à deviner)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut
    "on choisit en général astucieusement comme répertoire de travail un sous-répertoire du répertoire dans lequel se trouve l'appli."

    Merci, je suis d'accord mais je n'ai pas le choix


    donc je cherche comment modifier le App.Path

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Un App.path ne se modifie pas ! Il se constate (c'est le chemin complet de l'appli).
    Si tu n'as pas le choix, comme tu dis, tu en as un évident quand même : mettre ton appli à la racine du répertoire principal !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut
    dans ce cas tu n'as pas compris ma question, je cherche à modifier le répertoire de travail de l'appli, et pas le lieu où se trouve l'appli, c'est deux choses bien distinctes.
    Ensuite, si mon programme se trouve dans "c:\CUI" j'ourre avec le fichier XML "c:\CUI\a\b\c\file.xml" dans ce XML et j'y trouve une référence à "..\b\h\bidul.xml" et le but de l'opération est de dire à l'appli de travailler à partir du répertoire "c:\CUI\a\b\" pour qu'elle puisse trouver "..\b\h\bidul.xml" directement.

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bon !
    Je vois que tu n'as pas capté !
    Je n'insiste donc pas (tu as le droit de te compliquer la vie, ma foi !)

    Alors : il va te falloir utiliser Mid, Left, Right, Len et Instr (aide en ligne), ainsi que Split (si tu es sous VB6).
    Ce sont là toutes les fonctions qui te permettront de travailler sur les chaînes de caractères....

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut
    j'ai très bien compris ce que tu veux dire, mais le problème c'est que ce répertoire change (donc je peux pas deviner où il sera autrement qu'au dernier moment) à chaque foi, et j'ai plusieurs fichier xml comme ça...

  8. #8
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    jsais pas, amis moi je suis d'acc avec jfm.

    tu place l'appli dans le repertoire qui contients tous tes xml...

    dans ton dossier t'as

    [
    appli.exe
    \dossier_pleins_de_xml
    ]

    apres, dans ton premier xml qui appelle tous les autres, tu vire le debut ( que tu peux recuperer en faisant App.Path ) et t'as plus que le chemin relatif par rapport a ton appli.

    pis voila
    n'oubliez pas la balise

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut
    riesseg, je veux bien mais c'est pas si simple:

    Primo, toutes les adresses sauf celle de l'xml contenant les adresses des autres xml sont de la forme "../../d/e/truc.xml", et sont référencé par rapport à un répertoire . Secondo, je ne vais pas recopié mon fichier exe dans tous les répertoires où il y a des xml, car il en existe plein dans mon cas, donc ça multiplirai la taille de l'appli total par 100, au moins!!! j'ai pas le choix dans le lieu des fichier xml

  10. #10
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    heu...

    le ../ c'est le ../ du repertoire precedent ?
    n'oubliez pas la balise

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut
    oui

  12. #12
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    tu as qd meme le choix d'ou placer ton exe non?
    N'oubliez pas de mettre le

  13. #13
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    Legende:
    [dossier]


    je suis dans C:\A\B\

    Dans B\, j'ai:

    appli.exe
    [fctXML]


    dans [fctCML]\1\2\3\sommaire.xml

    sommaire.xml etant le fichier qui a ttes les adresses des autres fichiers xml en adresse dynamique ../


    Donc sommaire.xml est dans:
    C:\A\B\[fctXML]\1\2\3\sommaire.xml

    je pars de l'hypothese que les adresses dans sommaire.xml ne remontent pas plus haut que mon dossier[fctXML]
    j,ai aussi comme hypothese que sommaire.xml est dans un chemin fixe.

    soit l'adresse ..\..\a\fich1.xml contenu dans le sommaire.
    son chemin complet est donc:
    C:\A\B\[fctXML]\1\a\fich1.xml (si je ne me trompe pas)

    Je connais 2 adresses:
    Celles du dossier [fctXML], qui est la meme que l'appli ( App.Path)
    C:\A\B\
    Celles du sommaire.xml:
    C:\A\B\[fctXML]\1\2\3\

    ..\ veut dire supprimer tous les caracteres de l'adresse jusqu'au prochain \

    1)tu compte le nombre de ..\ dans l'adresse contenue dans le sommaire.(X)
    2)tu repere la position du X+1 eme \ en commencant par la fin
    3)tu supprime tout ce qui a a droite
    4)tu supprime tous les ..\ de l'adresse contenue dans le sommaire
    5)tu concatene le tout.

    1)..\..\a\fich1.xml | X = 2
    2)C:\A\B\[fctXML]\1\2\3\
    3)C:\A\B\[fctXML]\1\
    4)a\fich1.xml
    5)C:\A\B\[fctXML]\1\a\fich1.xml

    pis voila...

    Y'a ptet plus simple...
    Mais c'est une solution possible ^^
    n'oubliez pas la balise

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Points : 56
    Points
    56
    Par défaut
    Là je suis d'accord avec toi, c'est bourrin mais je vois pas comment faire autrement.

  15. #15
    Membre actif Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Points : 239
    Points
    239
    Par défaut
    Bonjour,
    Remarque Générale:
    on peut également choisir le répertoire d'execution d'un exe lors du lancement (propriété du raccourci, raccourci, démarrer dans) et avec chdir, changer ce repertoire en cours d'exécution (ex: s'executer où sont tes fichiers s'il y besoin de ressources localisées..)
    Dans ce cas, on récupere le chemin par curdir.

    Mais dans ton cas, c'est la solution de riesseg qui est la bonne.
    Citation Envoyé par riesseg
    Y'a ptet plus simple...
    Mais c'est une solution possible ^^
    Je crois que c'est surtout la seule possible.

    Citation Envoyé par riesseg
    je pars de l'hypothese que les adresses dans sommaire.xml ne remontent pas plus haut que mon dossier[fctXML]
    j,ai aussi comme hypothese que sommaire.xml est dans un chemin fixe.
    Ca non par contre, ces hypotheses sont inutiles

    A partir du moment ou tu connais le répertoire de sommaire.xml (meme après une recherche et quelque soit le repertoire de l'appli et de son execution!!!), tu dois être capable de gérer le remplacement de tous les \.. par le chemin absolu et meme des redirections (Z:\truc\bidule\sommaire.xml -> Z:\machin\fichier1.xml = ..\..\machin\fichier1.xml ->Z:\truc\bidule\Chose\fichier2.xml = ..\truc\bidule\Chose\fichier2.xml ).

  16. #16
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    J'ai quand même une question.
    Citation Envoyé par kboo
    j'entre l'adresse du fichier xml que voici dans cet exemple: "C:\Cild\toir\tet\rev_1\Appli\perc\functl\perc\an\perc.xsyn"
    Comment fais-tu pour "entrer" le chemin de ton fichier?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  17. #17
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    Citation Envoyé par AdHoc
    Ca non par contre, ces hypothese sont inutiles

    A partir du moment ou tu connais le répertoire de sommaire.xml (meme après une recherche et quelque soit le repertoire de l'appli et de son execution!!!), tu dois être capable de gérer le remplacement de tous les \.. par le chemin absolu et meme des redirections (Z:\truc\bidule\sommaire.xml -> Z:\machin\fichier1.xml = ..\..\machin\fichier1.xml ->Z:\truc\bidule\Chose\fichier2.xml = ..\truc\bidule\Chose\fichier2.xml ).
    Pas faux ^^
    n'oubliez pas la balise

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2013, 16h09
  2. Changer le répertoire par défaut de travail d'une servlet
    Par bullbull dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/10/2009, 14h03
  3. Changer de répertoire un projet VB6
    Par Thierry2008 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/10/2008, 18h47
  4. VB6 : changer le répertoire courant
    Par flyjodel dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/11/2007, 00h24
  5. Réponses: 5
    Dernier message: 27/04/2007, 14h59

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