Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Afin d'optimiser mes programmes, je cherche une solution qui permet en Lisp d'extraire la liste des DWG (ou autre) du répertoire en cours, voici mon bout de soft existant que je trouve plus qu'archaique (ou Bricoleur du dimanche ... ;) )

 

$drive = path de mon soft

$REP_TMP = répertoire de traitement

Cache = shell caché

 

Voici mon existant :

;_Supression des fichier mouchards
(command "CACHE" (strcat "DEL " $drive "controle_dossier.md5"))
(command "CACHE" (strcat "DEL " $drive "synchro.md5"))
;_ Construction du fichier bat
(setq $Fichier_ecrire (open (strcat $drive "md5sum.bat") "w"))
(write-line (substr $REP_O 1 2) $Fichier_ecrire)
(write-line (strcat "CD " $REP_TMP) $Fichier_ecrire )
(write-line (strcat "dir \"" $REP_TMP "*.dwg\" \/B |sort > " $REP_TMP "listedesdwg.tmp") $Fichier_ecrire)
(write-line (strcat "dir " $REP_TMP "listedesdwg.tmp > " $drive "synchro.md5") $Fichier_ecrire )
(close $Fichier_ecrire)
;_Création du chesksum
(command "CACHE" (strcat $drive "md5sum.bat" ))

 

 

Puis j'ouvre bêtement le fichier listedesdwg.tmp pour le mettre dans une liste.

 

Le traitement md5 fera l'objet d'une autre demande .

 

Merci pour vos suggestions et propositions ... :D

Posté(e)

Super !

 

Merci, cela fonctionne à merveille ....., Dans tous les exemples on a du natif autocad ACET et du LISP j'ai cru comprendre qu'il valait mieux utiliser les fonctions LISP que ACET ?

 

 

Re-Merci :D

 

Posté(e)
Super !

 

Merci, cela fonctionne à merveille ....., Dans tous les exemples on a du natif autocad ACET et du LISP j'ai cru comprendre qu'il valait mieux utiliser les fonctions LISP que ACET ?

 

 

Re-Merci :D

 

ACET peut changer dans n'importe quelle version, mais LISP vous-mêmes, vous changez, s'il faut!

Evgeniy

Posté(e)
Super !

 

Merci, cela fonctionne à merveille ....., Dans tous les exemples on a du natif autocad ACET et du LISP j'ai cru comprendre qu'il valait mieux utiliser les fonctions LISP que ACET ?

 

 

Re-Merci :D

 

ACET peut changer dans n'importe quelle version, mais LISP vous-mêmes, vous changez, s'il faut!

 

I did'nt understand !

Maybe in english ?

 

Thank

Posté(e)

I did'nt understand !

Maybe in english ?

 

Thank

 

Autodesk can change ACET-functions in each new version...

You owner LISP of functions - you can change the program at any time!

 

 

Ok, I undenstand, so I take your example, faster than shell command ;)

 

(defun GetFile (f p)
(apply (function append)
(cons (if (vl-directory-files p f)
(mapcar (function (lambda (x) (strcat p "/" x))) (vl-directory-files p f))
) ;_ if
(mapcar (function (lambda (x) (GetFile f (strcat p "/" x))))
(vl-remove ".." (vl-remove "." (vl-directory-files p nil -1)))
) ;_ mapcar
) ;_ cons
) ;_ apply
)

 

I only change \\ by / .... i think there is no problem with this ?

 

Thank

Posté(e)

:) :)

 

(vl-cmdf "shell" (strcat "FOR /F \"usebackq delims===\" %i IN (`dir \"" (getenv "ProgramFiles")"\\*acad.exe\" /s /b`) do echo.\"%~fi\">> d:\\temp.txt")) 

 

temp.txt:

"C:\Program Files\AutoCAD 2004\acad.exe"

"C:\Program Files\AutoCAD 2007\acad.exe"

Evgeniy

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é