Aller au contenu

rechercher dans repertoire et ses sous-repertoires


PHILPHIL

Messages recommandés

hello

 

la fonction "findfile" recheche dans le repartoire que l'on a deja designer dans autocad dans les options

 

est ce qu'il y a un moyen par LISp de faire une rcherche d'un fichier dans un repertoire defini et de ses sous répertoires a la fois ( non defini dans les options ceux la )

 

pour élargir les recherches

 

a+

 

bonne soirée

 

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Ou encore celle là (récursivité croisée)

 

(defun getFile (file path / foo1 foo2 rslt)

 (defun foo1 (path)
   (cond
     ((findfile (strcat path "\\" file)))
     ((foo2 (vl-remove "." (vl-remove ".." (vl-directory-files path nil -1)))))
   )
 )

 (defun foo2 (lst)
   (cond
     ((null lst) nil)
     ((foo1 (strcat path "\\" (car lst))))
     ((foo2 (cdr lst)))
   )
 )

 (foo1 path)
)

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

Lien vers le commentaire
Partager sur d’autres sites

hello

 

merci gile pour le lien

merci usegomme

 

 

bon ok je suis pas bon sur ce coup la

 

j'ai voulu modifie le LISP de "usegomme" majbloc

 

pour qu'il cherche dans les sous repertoires

 

il remplace bien le bloc et fait la mise a jour

 

mais il reste ce probleme la

 

kezako

 

Commande:

MJB

Selectionner le bloc a mettre a jour: *Incorrect*

ERREUR d'application: irfcld

commande AutoCAD incorrecte: nil

 

 

a+

 

bonne nuit

 

phil

 

(defun C:mjb  (/ ELST ENAM BLKNAME typent)
 (setq	ENAM   (car (entsel "\nSelectionner le bloc a mettre a jour: "))
ELST   (entget ENAM)
typent (cdr (assoc 0 ELST))
)

 (IF (= typent "INSERT")
   (progn
     (setq BLKNAME (GetFirstFile (strcat (cdr (assoc 2 ELST)) ".dwg") '("C:\\PERSO\\BIBLIOTHEQUE")))
     (command "_-insert" (strcat (cdr (assoc 2 ELST)) "=" BLKNAME))
     (command)
     (if (cdr (assoc 66 ELST))
(command "_attsync" "_n" (cdr (assoc 2 ELST))))
     (if BLKNAME
(prompt "\n Bloc mis à jour"))
     )
   (prompt "\n Ce n'est pas un BLOC ")
   )
 (princ)
 )


(defun GetFirstFile  (f p)
 (cond
   ((not p) nil)
   ((vl-directory-files (car p) f) (strcat (car p) "\\" (car (vl-directory-files (car p) f))))
   ((GetFirstFile
      f
      (append (mapcar (function (lambda (x) (strcat (car p) "\\" x)))
	       (vl-remove ".." (vl-remove "." (vl-directory-files (car p) nil -1)))
	       ) ;_  mapcar
       (cdr p)
       ) ;_  append
      ) ;_  GetFirstFile
    )
   ) ;_  cond
 ) ;_  defun

[Edité le 13/8/2009 par PHILPHIL]

 

[Edité le 13/8/2009 par PHILPHIL]

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Une petite recherche dans les forums de CADxp avec "irfcld" t'aurais dirigé vers d'autres cas de même erreur.

 

D'après ce que je comprends cette erreur est due à l'utilisation de la fonction command et semble ne survenir que sur certains postes. Elle doit être due à une application chargée sur le poste qui ne supporte pas certaines utilisation de cette fonction.

 

PS : il serait sûrement plus "économique en temps" de déclarer tes répertoires de "BIBLIOTHEQUE" que d'utiliser une routine de recherche.

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

Lien vers le commentaire
Partager sur d’autres sites

hello

 

gile : comme tu dis j'aurais du chercher , je l'ai fait pour regler le souci de l'insertion d'un bloc sans confirmation et apres dodo à 2h00 du mat faut bien dormir des fois

 

je vais continuer de chercher ce "irfcld"

 

pour ce qui est des sous répertoire biblio j'en ai 35 et surtout je ne connais pas ceux des autres

j'essaye de faire comme toi gile un lisp qui sert a tous

 

a+ merci

 

bon week

 

phil

 

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é