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
» bouton dans autre form que 0
Chemin de l'exécutable Emptypar leclode Aujourd'hui à 13:59

» KGF_dll - nouvelles versions
Chemin de l'exécutable Emptypar Klaus Aujourd'hui à 11:41

» Gestion d'un système client-serveur.
Chemin de l'exécutable Emptypar Klaus Aujourd'hui à 10:23

» PANORAMIC V 1
Chemin de l'exécutable Emptypar papydall Sam 4 Mai 2024 - 3:43

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Chemin de l'exécutable Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Chemin de l'exécutable Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Chemin de l'exécutable Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Chemin de l'exécutable Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Chemin de l'exécutable Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Chemin de l'exécutable Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Chemin de l'exécutable Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Chemin de l'exécutable Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Chemin de l'exécutable Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Chemin de l'exécutable Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Chemin de l'exécutable Emptypar papydall Dim 21 Avr 2024 - 23:30

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Chemin de l'exécutable

Aller en bas 
2 participants
AuteurMessage
JL35




Nombre de messages : 7095
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 : 968
Age : 51
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 : 7095
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 : 968
Age : 51
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 : 7095
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 : 7095
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 : 968
Age : 51
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 : 7095
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: