-
Compteur de contenus
8 500 -
Inscription
-
Dernière visite
-
Jours gagnés
19
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Tramber
-
Encore une fois ca va dépendre du navigateur. IE est le premier à être compatible. D'une époque où le DWFx n'existait pas. Pour l'OS, je ne suis pas certain que ca compte. DWFx est nouveau DWF est ancien, pour résumer au mieux. Fais peut-être d'abord le bilan sur l'équipement des destinataires. S'ils ont tous des configs récentes et IE tu auras peu de soucis. Sinon considère les options des publications que j'ai donné. N'oublies pas la commande PUBLIERWEB, qui existe depuis des lustres (2002 je crois, voire 2000i). Ce qui confrime ce que je dis plus haut d'ailleurs. Ca fait 10 ans que ca existe !
-
Ah oui, t'as peut-être raison avec le DWF viewer. Je ne saurais plus rien affirmer. Mais voilà je ne suis pas certain que, mécaniquement, IE6 ne te proposait pas un plug. Enfin, nous y sommes, il y a davantage de solutions qu'avant. Et avant elles étaient déjà méconnues et mal documentées (il faut le dire non ?). hop
-
Enfin la meilleure solution reste l'intégration à une page web. Voir ici. Il y a aussi des technos dans le labs. Tu y verras un tableau intéressant. Rien en Français ? Mais que fait Autodesk France ? En général ils t'envoient vers les pages en anglais. Yes. Pour compléter bryce, cela marchait (bien) avant le DWFx et sur IE6 ou moins (!), pas sur que le x soit nécessaire. A voir...
-
wcmatch et élimination de caractères
Tramber a répondu à un(e) sujet de Tramber dans Pour aller plus loin en LISP
Joli ! Tout marche bien. Même en itératif, cela montre que j'aurais pu faire mieux moi-même. (vl-string-trim "," ",0,0,0,,,") me permet d'obtenir "0,0,0". donc je ne me fais pas de bile pour les virgules avant ou après ! Je passe ce traitement au moment opportun. Hoppla -
wcmatch et élimination de caractères
Tramber a répondu à un(e) sujet de Tramber dans Pour aller plus loin en LISP
Je te remercie. et c'est vrai qu'avec vl-list->string et son pendant inverse, le passe-passe est facile. J'étudie cette piste histoire de supprimer les code 44 en doubles (les virgules). C'est mon ultime étape pour cette fonction. Mais j'avoue que je n'arrive pas à monter cet outil, exemple avec TOTO : (vl-remove-if '(lambda(x y)(= 44 x y))(vl-string->list "3,,4,5")) Ca n'est peut-être pas si simple. -
Là, c'est très intéressant parce que je m'y retrouve. et ce que tu dis sur les SETQ est fondamental, l'air de rien. Pour prendre une image béton (en l'honneur de VDH-Bruno), les laisser c'est comme ne pas enlever l'étaiement d'une dalle 28 jours après la coulée :D Mais je reste impressionné par TOTO que tu as donné plus haut. C'est du précontraint ! Bravo à tous les deux.
-
Bonjour, (vl-string-trim "," ",0,0,0,,,") me permet d'obtenir "0,0,0". C'est un préalable utile. Dans ce vieux sujet, j'ai demandé de l'aide pour traiter le problème suivant : Soit une chaine de caractères, je veux en retirer tout ce qui n'est pas chiffre entier ou virgules qui les séparent. Le but étant, à terme, de transformer le tout en liste d'entiers. "1" renvoie "1" "1,2" renvoie "1,2" "_\oi-_,90,ut5," renvoie ",90,5," -> (vl-string-trim "," ",90,5,") à la fin rend facilement "90,5" "123,,,51,2" renvoie "123,51,2" J'y arrive bien (et encore !) avec des routines lourdingues mais je me demande s'il n'y a pas de solutions récursives. Comme j'ai un peu le sujet en tête... On y parle de mécanique mais j'ai l'impression parfois de n'être qu'un chauffeur (si le lisp est le moteur) et ni ingénieur, ni même mécanicien :cool: Alors pourl'instant, j'essaie déjà un bon traitement non récursif : (defun test(nom / lettre compt) (setq compt 1) (while(and(>(strlen nom)0)( (if (wcmatch(setq lettre(substr nom compt 1)) "[0-9],[`,]") (setq compt(1+ compt)) (setq nom(vl-string-subst "" lettre nom)) )) nom) (test "3") (test "3,2") (test "3,2.") (test "..|_3,2.") (test "3,2,,,1") Seulement voilà, comme le montre le dernier test, je n'ai pas pu traiter efficacement les virgules en trop ! Serait-ce un challenge intéressant d'aller plus loin, et avec une fonction récursive ? ou cela devient-il superflu ? Autre question, très liée je pense, si je devais éclater cette chaine d'entrée en autant d'éléments d'une liste constituée de caractères simples. La récursivité est mieux adaptée aux listes (!?), non ? Hop
-
Coucou, J'ai fait beaucoup d'erreurs hiers soir dans mes tests je crois. Il y a plein de dinosaures ici, ils n'ont pas honte ! J'ai voulu participer à ce sujet parce qu'il tombait complètemepnt par hasard sur le sujet de l'un de mes travaux du jour. Ca donne une leçon qu'on a déjà eu plus d'une fois ici : il y a souvent moyen de faire plus simple ! et plus puissant. A propos du problème de pile, ta solution est logiquement plus robuste car l'écriture plus simple. Désolé pour mes test hier, je commencais à fatiguer et à mélanger quelques pinceaux. J'ai décidement toujours des progrès à faire dans la concision. [Edité le 18/11/2010 par Tramber]
-
Mon pauvre Bruno ! Le sujet se perd alors que j'aurais dû faire carrément un sujet ! La bonne nouvelle est que ce soir, avant la nuit porte-sommeil, je vais garder ma fonction récursive adaptée avec les conseils de (gile) pour les reverse : (defun test(lst som /); (setq lst(reverse DECOUPFUT) som 32) (cond(( (setq lst(cons(1+(car lst))(cdr lst)) lst(test lst som))) ((>(apply '+ lst)som) (if(not(zerop(1-(car lst)))) (setq lst(cons(1-(car lst))(cdr lst))) (setq lst(cdr lst))) (setq lst(test lst som))) ) lst) (reverse(test(reverse '(3 4 5 6 7))9)) renvoie (3 4 2) (reverse(test(reverse '(3 4 5 6 7))39)) renvoie (3 4 5 6 21) Je me trompais pour les négatifs mais les fonctions proposées répondent nil dans le premier cas, au lieu de (3 4 2). La moralité, c'est quand même, que de créer des petites fonctions récursives n'est pas si difficile (voir mon premier sujet, la construction mentale fût rapide). A demain pour ...mieux ! et bonne nuit à tous :cool: [Edité le 17/11/2010 par Tramber]
-
Oui, encore meilleur. Mais je vais reprendre car j'ai des résultats qui ne me conviennent pas (je ne veux pas de chiffres négatifs et pour l'instant aucune routine ici-présente ne me convient). Peut-être garderai-je la récursivité. Pour faire au moins un peu le lien avec le sujet ! (J'ignorais que ma contribution deviendrait un sujet.) Hopppla. Désolé Bruno :cool:
-
ok. C'est d'ailleurs troublant car on s'perçoit que la limite ne bouge pas beaucoup tant qu'on ne quitte pas ses tests. ffffffooooouu (if ( Voilà qui est balaise ! Il faut y penser et oser. Je ne regarderai pas ce soir si ca peut être changé mais (test_iter '(2 3 4 5) 2) me renvoie (2 3 4 -9) et cela ne me convient pas. Je reste avec des entiers positifs pour mon besoin. [Edité le 17/11/2010 par Tramber]
-
Oui, j'ai vu le dépassement de la pile dans la ligne de commande. Et ce que tu dis à propos de reverse est tout simple et utile à considérer dans mon cas. Pour le while, je suis d'accord, c'était même la première instruction à laquelle j'ai pensé. Mais je voulais me faire une récursive pour le principe. test_recurs est sans doute plus rapide. On a sans doute déjà parlé de la pile mais j'aurais une question : avez-vous le même résultat pour le dépassement ou c'est fonction de l'ordinateur ?
-
J'ai trouvé la limite avec, par exemple, ces 2 expressions : (test '(1 1 1 1) 19977) (test '(1 1 1 1) 19978) Chez moi, la 2ème ne renvoie rien. Rien au delà d'une somme supérieure à 19978. Comment cela fonctionne-t-il ?
-
Alors là, on peut dire que tu tombes bien ! (defun test(lst som /) (cond(( (setq lst(reverse(cons(1+(last lst))(cdr(reverse lst)))) lst(test lst som))) ((>(apply '+ lst)som) (if(not(zerop(1-(last lst)))) (setq lst(reverse(cons(1-(last lst))(cdr(reverse lst))))) (setq lst(reverse(cdr(reverse lst))))) (setq lst(test lst som))) ) lst) (test '(2 3 4 5) 0) -> nil (test '(2 3 4 5) 2) -> (2) (test '(2 3 4 5) 14) -> (2 3 4 5) (test '(2 3 4 5) 21) -> (2 3 4 12) (test '(2 3 4 5) 2115) -> (2 3 4 2106) (test '(2 3 4 5) 21215) -> rien ! (amusant, le dernier test est dépassé, moi aussi ! Mais une explication est bienvenue.) J'avais décidé de m'atteler ce soir (ou demain !) à une fonction qui réduise ou agrandisse le dernier terme d'une liste pour que la somme totale des éléments de la liste fasse une certaine somme. Eh bien je me suis dit : Tiens ! Je pourrais travailler sur le dernier élément de la liste pas à pas (en réduisant ou agrandissant de 1 en 1). Tiens, et puis je pourrais faire appel à la fonction elle-même pour l'évaluation suivante ! Ensuite je suis rentré, cigarette finie, et me suis réchauffé les doigts. Cela m'a pris moins de 10 minutes. Me voilà content et auto-satisfait. Mais la récursivité n'a pas délivré tous ses secrets pour mon cas. Alors bienvenu à tous les retours d'expériences.... comme d'hab ! Edité : bagarre avec le BBcode [Edité le 17/11/2010 par Tramber]
-
J'adore ! Si il fonctionne aussi bien pour OpenOffice(, j'essaierai à l'occasion), c'est génial. Je me suis assuré que je pouvais travailler avec le fichier et/ou le logiciel (Excel), ouvert(s) ou non. Et ca ne bronche pas. J'ai vu que pour Excel 97 et 2000 (les versions anciennes) ton code est simple et ne passe pas par les fichiers OLB. Je crois pouvoir imaginer que ton code sera compatible avec une version Excel ascendante. Peut-être me trompe-je... les biais pour manipuler les ActiveX ne sont pas mon fort et d'usage courant pour moi. En tous cas, c'est beau. Ca mérite un passage .00 ! Saluations
-
Un très bon lien. Je l'ai retrouvé tout de suite :cool:
-
On a parlé d'Ultraedit ici. Oui, donc, l'éditeur interne est précieux pour qui développe, même de petites applis.
-
Copier un block dans une autre couche
Tramber a répondu à un(e) sujet de pierrevigneux dans AutoCAD 2004
Non : un nouveau nom à quoi ? Au bloc ou au calque ? Une nouvelle altitude ? mais sur quelle base ? C'est pire encore :cool: -
Copier un block dans une autre couche
Tramber a répondu à un(e) sujet de pierrevigneux dans AutoCAD 2004
Bon, j'ai oublié la copie ! ^C^C_select;\_copy;p;;0,0;0,0;chprop;p;;ca;"nomcalque"; -
Copier un block dans une autre couche
Tramber a répondu à un(e) sujet de pierrevigneux dans AutoCAD 2004
Eh bien, dis-nous enfin si le calque existe. Si c'est le même, une macro du type : ^C^C_select;\chprop;p;;ca;"nomcalque"; Pour la couleur, je ne vois toujours pas le lien. A toi de mettre les objets du bloc à "ducalque", par exemple. Je ne sais pas. -
Copier un block dans une autre couche
Tramber a répondu à un(e) sujet de pierrevigneux dans AutoCAD 2004
Un bloc ou une définition de bloc ? J'en reviens à la demande initiale car je souhaitais y répondre. Malheureusement la demande n'est pas claire. Et le calque ? Existe-t-il ? Quel rapport avec la couleur ? -
Salut, En tous cas, si tu veux une lumière en voici une : utilise l'éditeur VLISP (en tapant la commande). Au moins un peu. Il est bourré de fonctions pratiques et dédiées. Comment fais-tu pour évaluer une à une tes expressions le cas échéant ? Comment s'en passer ?
-
Tiens, vous avez les vidéos de BTP informatic ? Je savais déjà que je n'avais pas les news. Quelle surprise... j'ai pas du tout envie de changer de thême : http://img690.imageshack.us/img690/8312/cadxp.jpg
-
Affichage d\'Attribut dans la palette propriété
Tramber a répondu à un(e) sujet de acadx dans AutoCAD 2009
Sur 2010, ça marche comme ça a toujours marché. Alors est-ce une faiblesse de la 2009 ?....mais non puisque pour un autre c'est le contraire. A priori, je ne connais pas de variable régissant ce comportement et suis dubitatif à vous lire. -
Coucou, (ENTMAKE (list (cons 0 "block") (CONS 2 "bloctotal") (cons 10 '(0 0)) (cons 70 64))) (ENTMAKE (list (CONS 0 "INSERT") (cons 2 "sousbloc") (cons 10 (list 0 0 0)))) (ENTMAKE (list (cons 0 "endblk"))) Je donne une petite réponse (quelques kilomètres plus bas...) avec un bloc imbriqué dans un autre. Sans vérification dansles tables. Avant de passer à vlisp. Il y a longtemps, quand je débutais ,je travaillais avec entmake. Tu verras qu'avec Vlisp, c'est pas mal simple aussi. Conseil : évite de programmer l'édition de bloc dans le dessin comme on le ferait avec un éditeur.de bloc. C'est un coup à se perdre.
