Aller au contenu

Comment savoir si un Lisp existe avant de le charger ?


DenisHen

Messages recommandés

Salut...

 

Je suis en train de faire une suite de plusieurs modules Lisp (lotissement, copropriété, division...) gérés par un seul : TétraCAD (mon petit projet).

 

Depuis ce dernier, je charge les Lisp utiles à l'utilisateur. Mais il se peut qu'il n'utilise qu'un seul module parmis les quatre que je développe.

 

Ma question : comment savoir si un fichier .lsp existe avant le de le charger avec un (load ?

 

Ce qui ressemble trait pour trait à un IsFileExiste en VBA...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

ReSalut didier.

 

Je n'ai rien lu qui démontre si AutoLoad charge un fichier Lisp que si il existe.

 

J'aimerais, dans mon Lisp, ne charger le fichier .lsp que s'il existe et surtout, vérifier s'il existe...

 

Et AutoLoad n'est pas reconnu comme une commande dans l'IDE VisualLisp (elle reste en noir et pas en bleu)...

 

Maître (gile), si tu me lis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Confirmation : FINDFILE

 

Le mieux dans ton cas car tu parles de faire un "programme complet" du moins avec plein de mini-programmes c'est de mettre le tout dans un chemin reconnu, chemin de recherche du logiciel et de vérifier si ce chemin de recherche est bel et bien connu.

 

Tu peux aussi voir ACADDOC.LSP

 

Ou bien de le mettre dans une routine de lancement :

 

(setq cheminDenisHEN "D:\\TetraCAD\\Routines\\"))

Allez on s'y met ...

 

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

Pour savoir si une fonction lisp est chargé en mémoire

(eval ma_fonction)

Par exemple avec le lisp CAT

(if (eval c:cat) (alert "Lisp CAT déjà chargé"))

 

@+

 

Il me semble que eval est superfétatoire,

(if c:cat (alert "Lisp CAT déjà chargé"))

suffirait.

 

Si on veut écrire quelque chose de plus explicite, la fonction boundp me semble plus indiquée :

(if (boundp 'c:cat) (alert "Lisp CAT déjà chargé"))

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous, et merci pour votre aide.

 

J'ai pu faire ce code, pour chacun de mes modules, et ça à l'air de fonctionner à merveille...:

(if (findfile "TC_Division.lsp")
 (load "TC_Division.lsp")
) ;_ Fin:if

Encore merci à vous...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité