Récuprérer le répertoire de l'application

Résolu
Yil2201 Messages postés 134 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 10 août 2008 - 29 mars 2006 à 21:36
Yil2201 Messages postés 134 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 10 août 2008 - 4 avril 2006 à 09:27
Salut! Je poste beaucoup mais je suis sur un grand project :p. Maintenant, j'aimerais récupérer le répertoire où se trouve mon exe. Pour cela, j'utilise Application.Exename mais pour le répertoire, il faudrait que je puisse enlever le project1.exe, donc je vous pose la question comment retirer une partie d'un String ... ?

Merci, ca pourrait etre utile a plein de monde, Yil2201

6 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
29 mars 2006 à 22:46
ExtractFilePath(Application.ExeName) renvoie uniquement le chemin.

May Delphi be with you !

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
30 mars 2006 à 08:10
Comme le dit si bien delphiprog, en effet il existe une fonction pour cela.
regarde dans l'aide delphi (index) et tape "Extract" tu verras plusieurs fonctions du meme genre.

maintenant, pour savoir reproduire le meme effet sans utiliser ces fonctions il faut en connaitre quelques une bien pratique.
tel Delete, Copy, ReverseString, Pos et PosEx

pour par exemple supprimer l'extention d'un nom de fichier :

uses StrUtils;

function DeleteExt(const filename : string) : string;
var PDot : integer;
begin

result := filename;


// on inverse la chaine pour touver le plus vite possible
// l'indice du premier "."
PDot := pos('.',ReverseString(result));
// si on en a trouver un
if PDot <> 0 then
// on recopie la chaine sans la portion
result := Copy(FileName,1,Length(Result)-PDot);
// on réinverse la chaine pour la remettre dans l'ordre
end;

function DeleteFileFromPath(const FileName : string) : string;
var PDot : integer;
begin
result := filename;
// on inverse la chaine pour touver le plus vite possible
// l'indice du premier "" et -1 pour garder ce ""
PDot := pos('\',ReverseString(result))-1;
// si on en a trouver un
if PDot <> 0 then
// on recopie la chaine sans la portion
result := Copy(FileName,1,Length(Result)-PDot);
// on réinverse la chaine pour la remettre dans l'ordre
end;


on pourrait egalement ecrire a la place de Copy() :

L := Length(Result);
Delete(Result,L-PDot,L);

mais les deux methodes se valent.

<hr size="2" width="100%">
3
Yil2201 Messages postés 134 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 10 août 2008
30 mars 2006 à 11:38
Merci! Fonctionne très bien! Peut etre faudrait-t-il changer le titr en Récuprérer le répertoire de l'application pour des recherches ultérieures... Un admin sait le faire ?

Merci, A+


[url]www.yiliman2201.be.tf/url
Mon site !
3
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
31 mars 2006 à 19:46
C'est fait !

May Delphi be with you !

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
4 avril 2006 à 00:11
Et si t'es tres TRES faineant et qu'il te faut le chemin de ton appli pour loader un fichier particulier présent dans le meme repertoire, ou un sous repertoire, tu peux toujour commencer le path avec "." du genre :

Machin.LoadFromFile('.\MonFichier.truc');

"." ca veut dire répertoire courant.
0
Yil2201 Messages postés 134 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 10 août 2008
4 avril 2006 à 09:27
Salut DeltaFX. J'avais déja pensé à faire ca mais malheureusement mon application utilise un OpenDialog. Apres l'execution de celui-ci, le répertoire par défaut change et se met dans celui de l'OpenDialog. Il est donc impossible de charger un fichier du repertoire de l'appli a ce moment là!

Merci, A+
0
Rejoignez-nous