informatixo
Messages postés129Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention25 juillet 2012
-
29 août 2005 à 18:22
informatixo
Messages postés129Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention25 juillet 2012
-
31 août 2005 à 08:20
J'ai regardé la faq et souvent il revient utilise extractfilepath ça marche.
Bon et bien pour moi nada
Voilà le code que j'utilise sur un bouton d'une form de mon application :
ShowMessage(ExtractFilePath('Fichier.ext'));
Le showmessage ne me renvoie rien.
J'ai essayé extractfiledir, extractrelativepath, expandfilename et son
homologue en unc et rien du tout toujours une chaîne vide.
La seule syntaxe qui fonctionne correctement chez moi c'est : ExtractFilePath(Application.Exename);
Ce que je recherche moi c'est de pouvoir connaître le chemin d'un
fichier qu'il soit exécutable ou non et qu'il soit en local ou sur le
reseau et n'importe où pas uniquement dans le dossier qui contient mon
application.
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 29 août 2005 à 20:37
pour recupérer le chemin d'un fichier il faut tout d'abord faire une recherche soit sur le disque soit sur le réseau utilise FileSearch(const Name, DirList: string): string; il faudra parcourir l'ensemble de l'arborescence.
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 30 août 2005 à 18:19
salut,
pour retrouver le fichier il n'y a pas d'autre solution que de parcourir l'arborescence En effet il faut que le programme retrouve le fichier et faute de pouvoir lui indiquer le chemin il faudra bien qu'il le trouve lui-même.
poru faire la recherche tu peux t'inspirer de la source de NoNo40:
Utiliser FindFirst en récursif pour scruter les sous-répertoires. en lui ajoutant un test pour vérfier que ton fichier est présent.
pour ce qui est du temps de traitement tout dépend du nombre de répertoire, du nombre de fichiers et de la position du fichier recherché par rapport à la racine.( le temps de recherche devrait être similaire à celui obtenu avec la fonction "Recherche" de l'exploreur. je te conseille de mettre un message d'avertissement en cas de recherche pour que l'uitilisateur ne croit pas que l'appli est plantée.
bonne prog
cs_barbichette
Messages postés220Date d'inscriptionlundi 30 octobre 2000StatutMembreDernière intervention15 juillet 2013 30 août 2005 à 11:05
La fonction ExtractFilePath(name:string):string; retire en partant de la fin tous les caractères à droite du dernier slash.
En fait, il ne regarde pas si c'est un fichier ou non.
Si on fait
ExtractFilePath('coucou, c''est \ une phrase normale\Pour le test.voilà');
ça donne 'coucou, c''est \ une phrase normale\'
ExtractFilename('coucou, c''est \ une phrase normale\Pour le test.voilà');
ça donne 'Pour le test.voilà'
ExtractFileext('coucou, c''est \ une phrase normale\Pour le test.voilà');
ça donne '.voilà',
Ben voilà, j'ai rajouter mon grain de sel...
Vous n’avez pas trouvé la réponse que vous recherchez ?
informatixo
Messages postés129Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention25 juillet 20121 30 août 2005 à 11:25
Tout d'abord, je tiens à vous dire un grand merci à tous pour l'aide que vous m'avez apporté.
Je vais maintenant vous tenir au courant de ce que je vais faire et vous donner quelques précisions.
En fait j'ai 2 ordinateurs (un PC et un PC PORTABLE) en réseau avec un simple câble croisé.
Le PC possède une application avec une base de données ACCESS et le PC
PORTABLE va contenir mon application qui doit envoyer des données vers
la base du PC.
Le problème est qu'il me faut vérifier que la base existe bien avant de pouvoir l'ouvrir pour y écrire dessus.
Pour le moment j'ai retenu simplement un :
if FileExists('\\PC\repertoire application\base de donnees.mdb') then
je met le datasource avec ce chemin
else
je génère un message d'erreur;
J'ai répondu réponse acceptée car je voudrais créer une fonction ou une
procédure qui utilise FileSearch et qui me permette de cherche un
fichier pour que mon application ne soit pas bloquée si quelqu'un pour
une raison ou une autre change un nom de dossier pour une mise à jour
par exemple.
En gros, je veux pouvoir retrouver mon fichier s'il existe et qu'il se
situe à un autre endroit que celui initial et tant qu'à réaliser une
fonction ou une procédure autant qu'elle serve pour n'importe quel
fichier comme celà je pourrais la réutiliser pour d'autres fichiers
dans mon application.
Voilà ma situation, le problème c'est que je ne sais pas comment m'y
prendre pour parcourir une arborescence. De plus, si je fais une boucle
qui parcours mon arborescence en cherchant mon fichier en local ou sur
le reseau et qui me rencoie vrai ou faux, j'ai l'impression qu'en temps
d'exécution celà risque d'être long ? non ?
Si quelqu'un a une idée ou même une fonction qui existerait déjà dans
delphi je suis preneur. En attendant, encore merci à tous et désolé
pour la réactivité mais beaucoup de boulot et une connexion bas débit
donc ça aide pas.
informatixo
Messages postés129Date d'inscriptionmercredi 4 février 2004StatutMembreDernière intervention25 juillet 20121 31 août 2005 à 08:20
Merci beaucoup pour ces précisions qui me seront très utiles et en plus
de la fonction recherche de fichier que je vais faire, je pense que je
donnerais la possibilité de parcourir le disque pour sélectionner le
bon chemin ou le bon nom de fichier comme dans certaines applications.