FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Chemin de l'exécutable Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Chemin de l'exécutable Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Chemin de l'exécutable Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Chemin de l'exécutable Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Chemin de l'exécutable Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Chemin de l'exécutable Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Chemin de l'exécutable Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Chemin de l'exécutable Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Chemin de l'exécutable Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Chemin de l'exécutable Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Chemin de l'exécutable Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Chemin de l'exécutable Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Chemin de l'exécutable Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Chemin de l'exécutable Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Chemin de l'exécutable Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-55%
Le deal à ne pas rater :
Friteuse sans huile – PHILIPS – Airfryer HD9200/90 Série 3000
49.99 € 109.99 €
Voir le deal

 

 Chemin de l'exécutable

Aller en bas 
2 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Chemin de l'exécutable Empty
MessageSujet: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 10:09

J'ai un exécutable qui est dans un répertoire particulier avec quelques fichiers annexes
nécessaires à son fonctionnement.
Ce répertoire est mobile et peut se trouver n'importe où, sur une clé USB par exemple,
et évidemment l'exécutable peut être lancé depuis n'importe où.
Cet exécutable a besoin d'accéder aux fichiers annexes, donc de connaître leur chemin d'accès
(qui est ici le même que celui de l'exécutable lui-même).

Est-il possible, depuis le programme lui-même une fois lancé, de connaître son chemin d'accès,
pour pouvoir accéder aux fichiers annexes ?
DIR_CURRENT$ donne  le chemin depuis lequel il a été lancé... ce qui n'est pas pareil.
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 10:34

Tu peux essayer d'utiliser les chemins relatifs Wink

Sinon, je fais comme ça dans mon éditeur:
Code:
dim DIR_APPLICATION$,DISK_APPLICATION$

DIR_APPLICATION$=file_extract_path$(param_value$(0))
DISK_APPLICATION$=file_extract_disk$(DIR_APPLICATION$)

print DIR_APPLICATION$
print DISK_APPLICATION$
mais ça ne fonctionne plus avec la version 0929i9, c'est une des raisons qui m'a poussé à repasser à la version 0929i8.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 10:44

Merci silverman, mais si ça ne fonctionne plus...

Quant aux chemins relatifs ???
En fait je veux pouvoir mettre mon répertoire complet sur n'importe quel support, lancer le programme
depuis n'importe où, et que l'exécutable sache où il est pour retrouver les fichiers qui sont avec lui.

PS
Eh dis-donc silverman, ça a l'air de marcher la combine file_extract_path(param_value$(0))
pourtant je suis bien sous 29i9 !
J'adopte, merci !
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 11:48

Ok j'ai compris. La combine sembe marcher pour un programme .EXE, mais pas pour un TEMP.
Les chemins relatifs c'est par exemple si ton programme est dans le dossier "c:\mon_pc\toto" et qu'il existe un sous dossier "aide" qui contient le fichier "help.txt", tu peux y accéder comme ça:

chemin complet : file_load N,"c:\mon_pc\toto\aide\help.txt"

chemin relatif : file_load N,".\aide\help.txt"

Le point remplace le chemin courant. Si tu n'utilise pas d'objet qui modifie 'dir_currents', c'est idéal.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 12:07

Pour l'usage que j'en fais ça me convient très bien.
Merci silverman, et bonne journée à toi !
Allez, aux autres aussi, au diable l'avarice !
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 16:10

Concernant mon problème: un exécutable situé dans un répertoire particulier contenant des données.
On peut lancer l'exécutable, mais le programme a besoin de connaître le chemin des données (situées
avec l'exécutable), ce qui n'est pas évident, si par exemple le tout est sur un support externe.

La solution de silverman marche parfaitement et donne ce chemin
Répertoire de l'exécutable en cours: FILE_EXTRACT_PATH$(PARAM_VALUE$(0))

Par contre, pendant la mise au point, si on exécute le programme depuis l'éditeur Panoramic,
le chemin du code exécuté est C:\Users\[NOM]\AppData\Local\Temp\,
[NOM] étant variable (nom du PC), ce qui est gênant pour la mise au point sur plusieurs machines.
Le problème est de trouver le nom du PC, alors...
Ici, le répertoire de mise au point contenant les données est C:\SUDOPDF\ :
Code:
DIM rep$,rpa$
FILE_OPEN_WRITE 1,"Usname.bat"
    FILE_WRITELN 1,"@echo off"
    FILE_WRITELN 1,"ECHO C:\Users\%USERNAME%\AppData\Local\Temp\ | clip"
FILE_CLOSE 1
EXECUTE_WAIT "Usname.bat"
rpa$ = TRIM$(CLIPBOARD_STRING_PASTE$): ' répertoire d'exécution sous éditeur
FILE_DELETE "Usname.bat"
rep$ = FILE_EXTRACT_PATH$(PARAM_VALUE$(0)): ' répertoire de travail (actuel)
IF rep$ = rpa$: ' Si exécution depuis l'éditeur Panoramic
    rep$ = "C:\SUDOPDF": ' On force le chemin du répertoire des données
END_IF

Pour éviter d'avoir à modifier le source suivant qu'on est en essais ou opérationnel.
A toutes fins utiles, chez moi ça marche. Et encore merci silverman !
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 16:43

Avant de repasser à la version 0929i8, j'avais testé cette solution;
A placer au tout début du source:
Code:
dim root$
root$=FILE_EXTRACT_PATH$(PARAM_VALUE$(0))
if root$<>dir_current$+chr$(92)
   root$=dir_current$+chr$(92)
   ' root$="ma_root" :' ou codage en dur
   print "exécution depuis l'éditeur"
else
   print ".exe"
end_if
print "root$= ",root$
Pas testé à fond, trop de pb annexes avec la version 0929i9

EDIT:
Tu peux aussi obtenir le répertoire TEMP via dll de cette manière:
Code:
print DIR_TEMP$()


end
fnc DIR_TEMP$()
    dim_local DIR_TEMP_DOLLAR_c$,DIR_TEMP_DOLLAR_dword%
    peek_reverse
    DIR_TEMP_DOLLAR_c$=string$(260," ")
    ' appel de la dll
    DLL_ON "kernel32.dll"
       ' appel de la fonction
       DIR_TEMP_DOLLAR_dword% = DLL_CALL2("GetTempPathA",260,peek32(adr(DIR_TEMP_DOLLAR_c$)))   :' obtient le chemin; 'DIR_TEMP_DOLLAR_dword%' = nombre de caractères inscrit dans la structure n°1 (via lpBuffer%) par la fonction dll "GetTempPath"
    DLL_OFF
    result trim$(DIR_TEMP_DOLLAR_c$)
end_fnc
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable EmptySam 23 Mai 2020 - 20:05

Effectivement, ça c'est intéressant avec la kernel32, je note et j'archive.
Revenir en haut Aller en bas
Contenu sponsorisé





Chemin de l'exécutable Empty
MessageSujet: Re: Chemin de l'exécutable   Chemin de l'exécutable Empty

Revenir en haut Aller en bas
 
Chemin de l'exécutable
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Conversion chemin long/chemin court (8.3)
» conversion chemin long
» Ajouter un chemin à la variable d’environnement PATH
» obtenir le chemin du répertoire TEMP de windows
» Préciser le chemin du fichier chargé dans l'onglet.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: