Aller au contenu

Comment savoir si un Lisp existe avant de le charger ?


Messages recommandés

Posté(e)

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)

Posté(e)

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)

Posté(e)

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 ...

 

Posté(e)

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é"))

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Posté(e)

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)

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é