tiboulen Posté(e) le 25 janvier 2007 Posté(e) le 25 janvier 2007 bonjourJe voudrais retrouver les commandes lisp qui permettent de tronquer une chainede carateres a partir d'un caractere donne ex "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. texte}"et obtenir "texte" Je sais qu'on peu calculer la longueur du texte et qu'on peut calculer la position de ";" mais j'ai oubliemercips je cherche un bon bouquin sur autolisp ou vba le mien date de matusalem
Bred Posté(e) le 25 janvier 2007 Posté(e) le 25 janvier 2007 Salut,une possibilité : (vl-string-subst "" "}" (vl-string-subst "" "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. " "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. texte}")) Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
(gile) Posté(e) le 25 janvier 2007 Posté(e) le 25 janvier 2007 Salut, Regarde ce sujet. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 26 janvier 2007 Posté(e) le 26 janvier 2007 (setq str "{\\fArial Occidental|b0|i0|c0|p34;H.S.P. texte}") (substr str(1+(1+(vl-string-search ";" str)))) Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 26 janvier 2007 Posté(e) le 26 janvier 2007 Identique à Tramber, c'est une routine que j'ai proposée récemment, qui permet de lancer la commande MTEXT en reprenant le 1er style forcé (si celui-ci en contient) d'un MTEXT sélectionné. (defun c:match_mtext ( / e_text ins_pt v_text) (while (not (setq e_text (nentsel "\nSélectionner un Texte-Multiligne: ")))) (setq e_text (entget (car e_text))) (cond ((eq (cdr (assoc 0 e_text)) "MTEXT") (initget 9) (setq ins_pt (getpoint "\nPoint d'insertion du Texte-Multiligne?: ")) (setq e_text (subst (cons 10 ins_pt) (assoc 10 e_text) e_text) v_text (cdr (assoc 1 e_text)) ) (if (setq pos (vl-string-search ";" v_text)) (setq v_text (strcat (substr v_text 1 pos) "; }")) (setq v_text "") ) (setq e_text (subst (cons 1 v_text) (assoc 1 e_text) e_text)) (foreach n e_text (if (eq (car n) 3) (setq e_text (vl-remove n e_text)) ) ) (entmake e_text) (command "_.mtedit" (entlast)) ) (T (princ "\nCe n'est pas un Texte-Multiligne!") ) ) (prin1) ) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
ElpanovEvgeniy Posté(e) le 26 janvier 2007 Posté(e) le 26 janvier 2007 (entmakex '((0 . "MTEXT") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "Kb_") (100 . "AcDbMText") (10 0. 0. 0.0) (40 . 0.2) (41 . 24.4136) (46 . 0.0) (71 . 1) (72 . 5) (1 . "\\pt5;{\\H15x;\\C1;E\\C3;l\\fArial Black|b0|i0|c0|p34;\\C256;p\\fArial Narrow|b0|i0|c0|p34;a\\fArial|b0|i0|c204|p34;\\C5;n\\H1.167x;ov\\fTimes New Roman|b0|i0|c204|p18;\\H0.8571x;\\C256;Evgeni\\H1.167x;y}" ) (7 . "Standard") (210 0.0 0.0 1.0) (11 1.0 0.0 0.0) (42 . 30.7032) (43 . 4.61776) (50 . 0.0) (73 . 1) (44 . 1.0) ) ) Evgeniy
(gile) Posté(e) le 26 janvier 2007 Posté(e) le 26 janvier 2007 Il me semble que l'on ne comprend pas tous la même chose quant à la demande de Tiboulen. S'il s'agit bien de supprimer tous les formatages de Mtextes le LISP C_TXT semble fonctionner. Exemple avec le texte créé par la routine de Evgeniy : http://xs511.xs.to/xs511/07045/texte1.1.png.xs.jpg après C_txt : http://xs511.xs.to/xs511/07045/texte2.1.png.xs.jpg Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant