Lisp Commande getfiled

Bonjour,

voici une petite énigme, pouvez-vous m'aider à la résoudre ?

Voir pièce jointe pour confirmation

Explications:

- je crée une variable pathcible pour stocker le chemin soit "H:\\cad2014\\"

- je stocke dans la variable fcible le résultat de la fonction getfiled

Essai 1, pour le choix du fichier A_BSM.txt la variable fcible me donne "A_BSM.txt"

Essai 2, pour le choix du fichier F000d_ADEMOLIR.txt la variable fcible me donne "F000d_ADEMOLIR.txt"

Tous les fichiers me donnent une réponse semblable c'est-à-dire le nom du fichier sauf,

Essai 3, pour le choix du fichier A000d_ADEMOLIR.txt la variable fcible me donne "H:\\cad2014\\A000d_ADEMOLIR.txt"

ce qui implique une erreur pour la suite du programme sur ce fichier?

En réalité, le fichier de l'essai 2 est identique à l'essai 3, c'est une copie du fichier A000d_ADEMOLIR.txt, renommée?

La question que je me pose est sur le résultat de la fonction getfiled, doit-elle:

- me donner le nom du fichier seul?

- me donner le chemin et le nom du fichier?

Merci  d'avance

jplunus


2019-10-17_15h02_52.png

D'après cette page (aide getfilled), je regarderais du côté du dernier paramètre ("8").

1 « J'aime »

stefbeno, merci

le problème vient bien du paramètre, mais  c'est bien le ("8") que je dois utiliser.

8 (bit 3) - Si ce bit est défini et que le bit 0 n'est pas défini, 
getfiled effectue une recherche de bibliothèque pour le nom de fichier entré.
S'il trouve le fichier et son répertoire dans le chemin de recherche 
de la bibliothèque, il le supprime et ne renvoie que le nom du fichier.
(Il ne supprime pas le chemin d'accès s'il détecte qu'un fichier du même 
nom se trouve dans un répertoire différent.)
Si ce bit n'est pas défini, getfiled renvoie le nom de fichier complet, 
y compris le chemin.
Définissez ce bit si vous utilisez la boîte de dialogue pour ouvrir un 
fichier existant dont vous souhaitez enregistrer le nom dans le dessin 
(ou une autre base de données).

- j'ai regarder du côté des propriétés sans  succès

- j'ai remplacer le A par a, même problème

-j'ai remplacé le A par X, plus de problème 

J'abandonne et solutionne le problème en introduisant une condition que voici

(if (= pathcible (substr fcible 1 11) (setq fcible (substr fcible 12)))

de cette façon, que la fonction insère ou non le chemin mon résultat sera toujours le même

et la routine ne se bloquera plus.

A+