Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous,

 

Je tente désepérement de faire un zip de mon répertoire, sans utiliser un programme externe, et ceci avec la commande etransmit, mais problèmes :

 

Etransmit prend par défaut le fichier en cours, on peut rajouter une liste de fichier mais pas avec la commande en ligne -etransmit (N'est-ce pas ?)

 

Etransmit peut sauvegarder un jeu de feuille, mais je ne peut pas rajouter les fichiers DWG de mon répertoire car ils n'ont pas de présentation , et comme chacun le sait, le jeu de feuille ne prend en compte que les présentations !( n'est-ce pas ?)

 

[surligneur] Donc il ne reste plus que le LISP ?[/surligneur]

 

ou comment faire ???? :casstet:

 

Merci à vous !

 

 

Posté(e)

Euh, tu veut sauvegarder tes FICHIER DWG ou autre chose?

SInon, tu peut trajouté des fichiers comme tu veut sans problemes... :casstet:

L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
"Il vaut mieux mobiliser son intelligence sur des conneries, que sa connerie sur des choses intelligentes" - Devise Shadok.
"ceux qui ne se souviennent pas du passé sont condamnés à le revivre" George Santayana

Ma bibliothèque de blocs électrique :symbole elec.dwg

Posté(e)

Je me surprends moi même :)

C'est fou ce que l'on peut réaliser avec les Activex.

Donc, voici une solution en Vlisp qui créé un zip les fichiers choisis (et à une vitesse impressionnante :o )

 

ps : j'avais aussi en activex la possibilité de faire une sélection multiple avec le choix de l'arborescence, mais la réponse ne supporte pas plus de 256 caractères :(

 

@+

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)

en ligne de commande ???

 

 

:casstet:

 

 

Je n'ai pas réussi !

 

Non, via la fenêtre, j'avais pas bien lu :P

L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai.
"Il vaut mieux mobiliser son intelligence sur des conneries, que sa connerie sur des choses intelligentes" - Devise Shadok.
"ceux qui ne se souviennent pas du passé sont condamnés à le revivre" George Santayana

Ma bibliothèque de blocs électrique :symbole elec.dwg

Posté(e)

Bonjour à tous !

 

Merci pour le lisp ZIP, il fonctionne parfaitement,

J'ai tenté de le décortiquer ...... :casstet:

 

Je tente de faire un zip manuellement avec ce que patrick_35 m'a donné ..... :casstet:

 

Il me manque les bases .... mais tout se passe ici :

 

(vlax-invoke zip 'copyhere (vla-item nom fic))

 

Je tente de faire genre :Zip Destination fichier_à_ajouter et je bloque sur le vla-item ....

 

   (setq sh  (vlax-create-object "shell.application"))
 (setq zip  (vlax-invoke sh 'namespace (strcat "C:/" "toto.zip")))
 ;(vlax-invoke zip 'copyhere (vla-item nom fic))
 (vlax-invoke zip 'copyhere (strcat $rep "/" (Odcl_Control_GetText Boites_Open_EFIC)))
 (vlax-release-object sh)

 

 

Merci

 

A+

 

[Edité le 14/3/2007 par stephan35]

Posté(e)

Salut

Je vais tenter une explication

 

Pour permettre de faire des opérations sur des fichiers via activex

(setq sh  (vlax-create-object "shell.application"))

La variable rep est le nom du répertoire

(setq rep "c:\\")

Pour lire en objet le contenu du répertoire

(vlax-invoke sh 'namespace rep)

Pour avoir la liste des fichiers/répertoires toujours en objet

(setq nom (vlax-invoke (vlax-invoke sh 'namespace rep) 'items))

Maintenant, un (vla-get-name (vla-item nom 0)) me donne le permier fichier ou répertoire de la liste

 

Pour le fichier de destination en objet

(setz zip  (vlax-invoke sh 'namespace "c:\\Test.zip"))

 

L'instruction

(vlax-invoke zip 'copyhere (vla-item nom fic))

Fait donc une copie en objet vers le fichier de destination en le compressant

 

@+

 

 

 

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)

Merci !

 

Pour le début j'ai tout compris, par contre :

 

L'utilite de ces 2 lignes : ???? (ça ne fonctionne pas sans !) et moi pas comprendre !

 

 (vlax-invoke fic 'write (vl-list->string (list 80 75 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))
(vlax-invoke fic 'close)

 

 

d'autant plus que le programme ci-dessous ne se sert pas de la variable fic !

 

       (setq fso (vlax-create-object "scripting.filesystemobject")
    sh  (vlax-create-object "shell.application")
     )
     (if (setq dest (strcat (getenv "UserProfile") "\\My Documents\\" $aff2 $tranche2 "-Cl.ZIP"))
      (if (vl-catch-all-error-p (setq fic (vl-catch-all-apply 'vlax-invoke (list fso 'createtextfile dest))))
	(princ (strcat "\nImpossible de créer le fichier " dest))
	(progn
	  (vlax-invoke fic 'write (vl-list->string (list 80 75 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))
	  (vlax-invoke fic 'close)
	  
	  (setq nom (vlax-invoke (vlax-invoke sh 'namespace $rep) 'items)
		zip (vlax-invoke sh 'namespace dest)
	  )
	  (vlax-invoke zip 'copyhere (vla-item nom (Odcl_Control_GetText Boites_Open_EFIC)))
	  (princ (strcat "\nFichier " dest " créé."))
	)
      )
    

     )
     (vlax-release-object fso)
     (vlax-release-object sh)

 

 

Etonnant non ?

 

Merci !

Posté(e)

Salut

Si tu ouvres un fichier zip, tu remarqueras ces caractères. Tous les types de fichiers ont leurs propre entête et c'est aussi ce qui permet des les distinguer, donc si tu ne l'écrit pas, tu seras incapable de l'ouvrir correctement.

Par exemple, un dwg comment par AC puis une valeur pour donner la version du dwg (1015 pour 2000 et 1018 pour 2004 par exemple, ce qui fait AC1015 ou AC1018)

Donc je créé le fichier, j'écris l'entête puis je le ferme. Ensuite je l'affecte en tant qu'objet pour pouvoir y écrire dedans avec le copyhere

 

Pour la variable fic, tu ne l'a pas vu, mais elle se trouve ici

(if (vl-catch-all-error-p ([surligneur][b]setq fic[/b][/surligneur] (vl-catch-all-apply 'vlax-invoke (list fso 'createtextfile dest))))

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

  • 3 semaines après...
Posté(e)

c'est fou Pat....

 

tes code je les admires.. ;-)

 

Cependant avec ton zip file...

il ne va pas chercher les Xrefs,..comme e-transmit.

 

facile a coder..mais bon, à titre d'information.

 

;-)

Sky is the limit.....Mon oeuil !!

Posté(e)

Merci, c'est gentil ;)

Tu as raison, les xrefs ne sont pas prévus.

Avec objectDbx, c'est on ne peut plus facile.

Reste à savoir si dans le zip, on garde ou pas le chemin et si oui, en relatif ou pas ;)

 

@+

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

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é