Aller au contenu

Manipulation des textes


Messages recommandés

Posté(e)

Comme fonction lisp nous avons vl-string-left-trim mais je n'arrive pas à trouver une fonction qui efface un morceau de texte soit à gauche soit à droite alors ....

 

 

 ;;; Removes the specified characters from the beginning of a string 
;;; (vl-string-left-erase position string) 
;;;
;;; Arguments 
;;; - position 
;;;    A displacement in the string; the first character is displacement 0.
;;; - string 
;;;    The string to be stripped of character-set. 
;;;
;;; Return Values 
;;; A string containing a substring of string with all leading characters in character-set removed
;;;
;;; Examples 
;;; _$ (vl-string-left-erase 1 "abcdefjk")
;;; "bcdefjk"
;;; _$ (vl-string-left-erase 5 "abcdefjk")
;;; "fjk"
;;; _$ (vl-string-left-erase 8 "abcdefjk")
;;; ""
;;; _$ (vl-string-left-erase 12 "abcdefjk")
;;; ""

(defun vl-string-left-erase (NbCar Val_String / stringlist n stringfinal)
 (setq stringlist (vl-string->list Val_String))
 (if (> NbCar (length stringlist)) (setq NbCar (length stringlist)))
 (if (or (< (length stringlist) 0) (< NbCar 0))
   (setq n 0)
   (setq n NbCar))
 (if (/= stringlist nil)
   (while (< n (length stringlist))
     (progn
 	(if (= stringfinal nil)
  (setq stringfinal (list (nth n stringlist)))
  (setq stringfinal (append stringfinal (list (nth n stringlist)))))
       (setq n (+ n 1))
     )
   )
 )
 (if (listp stringfinal)
   (vl-list->string stringfinal)
   Val_String
   )
)

 

et pour la droite :

;;; Removes the specified characters from the ending of a string 
;;; (vl-string-right-erase position string) 
;;;
;;; Arguments 
;;; - position 
;;;    A displacement in the string; the first character is displacement 0.
;;; - string 
;;;    The string to be stripped of character-set. 
;;;
;;; Return Values 
;;; A string containing a substring of string with all leading characters in character-set removed
;;;
;;; Examples 
;;; _$ (vl-string-right-erase 0 "abcdefjk")
;;; ""
;;; _$ (vl-string-right-erase 1 "abcdefjk")
;;; "a"
;;; _$ (vl-string-right-erase 5 "abcdefjk")
;;; "abcde"
;;; _$ (vl-string-right-erase 12 "abcdefjk")
;;; "abcdefjk"

(defun vl-string-right-erase (NbCar Val_String / stringlist n stringfinal)
 (setq stringlist (vl-string->list Val_String))
 (setq n 0)
 (if (> NbCar (length stringlist)) (setq NbCar (length stringlist)))
 (if (< NbCar 0) (setq NbCar 0))
 (if (/= stringlist nil)
   (while (< n NbCar)
     (progn
 	(if (= stringfinal nil)
  (setq stringfinal (list (nth n stringlist)))
  (setq stringfinal (append stringfinal (list (nth n stringlist)))))
       (setq n (+ n 1))
     )
   )
 )
 (if (listp stringfinal)
   (vl-list->string stringfinal)
   Val_String
   )
)

puisque je ne les ai pas trouvé dans l'aide d'AutoCAD je les ai créées...

 

;)

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

En combinant :

 

(substr string start [length])

[tout seul avec strlength, on doit pouvoir y arriver, non ?]

 

et

(vl-string-right-trim character-set string)

ou

(vl-string-right-left character-set string)

 

tu peux certainement arriver à qqe chose de bien + court.

 

Un conseil :

tape le mot-clef String dans l'aide puis selectionne

String Handling functions

 

Pour chaque catégorie (listes, strings, ...), il y a un tableau de ce genre résumant tout dans l'aide, je ne sais pas si tu connais ces pages.

 

[Edité le 28/1/2005 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Regarde ce code :

 

 

(substr "abcde" 2)
(substr "abcde" 1)
(substr "abcde" 1 (-(strlen  "abcde" )1))

 

Je m'étais trompé sur l'orthographe de strlen

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

:casstet:

Merci Tramber je vois que j'ai du mal à trouver quelque chose avec l'aide d'autoCAD et c'est parce que tu m'as dit d'aller chercher cette fonction

(substr string start [length])  

que le l'ai trouvé parce que tu tape string dans l'aide et t'as une tripoté de référence et au bout de la centième tu te lasse..... surtout quand tu vois qu'il y en a plus de 5000!

 

;)

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

c'est pour enlever le surlignage des texte mutlilinges qui sont pas correct!

alors lu substr correcpond exactement à ce que je cherche.

 

Effacer entre le [surligneur] "\\f"[/surligneur] et [surligneur] ";"[/surligneur]

et le [surligneur] "{"[/surligneur] si ontrouve les éléments précédent.

(normalisation de MTEXT selon notre BE

 

le cons (3 . ".....") existe uniquement dans le cas où le nombre de caractère est supérieur à 250

 

((-1 . )
(0 . "MTEXT") (330 . )
(1 . "dfjkggsdkjkgfjklfjkgjf...dfjkgg [surligneur] }[/surligneur]")
(10 121.134 176.901 0.0) 
(100 . "AcDbEntity")
(100 . "AcDbMText")
(11 1.0 0.0 0.0)
(210 0.0 0.0 1.0)
(3 .  [surligneur] "{\\fArial|b0|i0|c0|p34;[/surligneur]sdkjkg...")
(3 . "fjkgjdfjkggsddffjkdjffjdfjkjk...")
(3 . "fjklfjkgjdfjkdfjklfdfjdkljggs...")
(3 . "ggsdkjkgfjklsdfjkhfjhfjksdfjk...")
(3 . "jkhhjkdfdhfjkjfjkdhh...\\Pklf...")
(3 . "kjkgfjklfjdfhdfjhdhdjkjfkgjdf...")
(40 . 0.12)
(41 . 10.3303)
(410 . "Model") 
(42 . 16.5573)
(43 . 1.57165)
(44 . 1.0))
(5 . "D52")
(50 . 0.0)
(62 . 7)
(67 . 0) 
(7 . "Ecriture")
(71 . 1)
(72 . 5)
(73 . 1)
(8 . "0")

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

que le l'ai trouvé parce que tu tape string dans l'aide et t'as une tripoté de référence et au bout de la centième tu te lasse..... surtout quand tu vois qu'il y en a plus de 5000!

 

suaf que 4 ou 5ème ligne, il y a le tableau résumant: String manipulation function

 

Idem si tu tapes list

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Dans : Documentation du développeur

 

->Visual LISP Developer's Guide

->Appendixes

->AutoLISP Function Synopsis

->Basic Functions

->String-Handling Functions

 

Au fait StripMText ne fonctionne pas? Car il fait ce que tu désire (il enléve toutes les séquences de contrôle d'un MText)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Pour StripMtext je ne peux pas le tester car je ferait de la "non qualité" selon notre système de Manuel Qualité ISO 9001. (gestion documentaire)

 

Je suis en attente de modification auprès du chargé de la qualité.... :cool:

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

meme pire il ne fonctionne pas

test avec Visual AutoLISP :

 

[VERIFICATION du TEXTE Chargement de STRIPMTEXT[3].LSP...]

.

; avertissement: variable locale utilisée comme fonction: [surligneur] SETUP[/surligneur]

; avertissement: variable locale utilisée comme fonction: [surligneur] MAINDIALOG[/surligneur]

; avertissement: variable locale utilisée comme fonction: [surligneur] STRIPMTEXT[/surligneur]..

; Vérification terminée.

 

 

Donc je ne peux l'utiliser.....

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

Pourquoi le charge tu sous Visual Lisp?

 

Fait simplement la commande "APPLOAD" et sélectionne le lisp à charger.

 

Le charger sous visual peut servir à le débugger, a priori ici il y a un problème de définition de variable locale., mais cela n'empêche pas son execution basique (sans passer par l'éditeur VL.)

 

Personellement j'utilise rarement l'éditeur VL, je suis un dinosaure qui préfère simplement un bon éditeur tel que "UltraEdit" configuré pour la syntaxe Lisp.

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

StripMtext NE MARCHE PAS :

 

Commande:

StripMtext v3.07

Choix des objets: 1 trouvé(s)

 

Choix des objets: 1 trouvé(s), 2 au total

 

Choix des objets:

 

no function definition: MAINDIALOG

 

apparemment il ne trouve pas le ( defun MAINDIALOG () ....)

or il y est.

 

Je me suis donc résigné à l'ouvrir avec Visual Autolisp : "commande _VLIDE

 

et j'ai cette erreur :

 

[VERIFICATION du TEXTE Chargement de STRIPMTEXT[3].LSP...]

.

; avertissement: variable locale utilisée comme fonction: [surligneur] SETUP[/surligneur]

; avertissement: variable locale utilisée comme fonction: [surligneur] MAINDIALOG[/surligneur]

; avertissement: variable locale utilisée comme fonction: [surligneur] STRIPMTEXT[/surligneur]..

; Vérification terminée.

 

En essayant de comprendre j'ai cru comprendre que le (defun c: StripMText (....).....) contient des defun dans sa fonction. Perso je trouve pas çà logique.....

comment appeler quelquechose que l'on définit soit-même....

 

je vais demander demain au facteur de trouver où je vais habiter dans deux ans.....

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

En essayant de comprendre j'ai cru comprendre que le (defun c: StripMText (....).....) contient des defun dans sa fonction. Perso je trouve pas çà logique.....

comment appeler quelquechose que l'on définit soit-même....

 

C'est pourtant une bonne habitude à prendre.

 

Mais, même compilé je crois (le compilateur n'optimisera pas certaines parties, c'est tout) c'est pas encore une cata d'avoir des noms de variables comme certaines fonctions, tout dépend.

 

Peut-être ces 3 noms sont-ils déclarés en variables locales dans stripmtext, ce qui n'est pas accepté par le compilateur.

 

J'ai toujours voulu utiliser UltraEdit mais :P , mais incapable de le configurer lisp ?!

 

....... :cool:

 

[Edité le 1/2/2005 par Tramber]

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

http:// http://www.users.qwest.net/~sdoman/

 

Réponse de la ligne de commande en sélectionnant un Txt multiligne

 

Commande: _appload STRIPMTEXT.LSP correctement chargé(s)


Commande:
StripMtext v3.07
Choix des objets: 1 trouvé(s)

Choix des objets:
; erreur: no function definition: MAINDIALOG

Commande:

 

Le DCL il le trouve pourtant!

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

Pour Maximilien:

 

Si tu veux modier StripMText pour qu' il soit compatible VL, modifie :

(defun c:StripMtext ( /

 ; Functions
 
 *error*
 AcceptButton      
 ClearAllButton    
 MainDialog        
 SelectAllButton 
 Setup
 StripMtext        
 Unformat          

 ; Variables

 dcl_id       
 dclfilemsg 
 dclfilename              
 dialogmsg
 keylist      
 modcnt     
 save         
 settings     
 space        
 ss           
 tilemsg    
 versionmsg

 )

 

En

(defun c:StripMtext ( /

 ; Functions
 
;  *error*
;  AcceptButton      
;  ClearAllButton    
;  MainDialog        
;  SelectAllButton 
;  Setup
;  StripMtext        
;  Unformat          

 ; Variables

 dcl_id       
 dclfilemsg 
 dclfilename              
 dialogmsg
 keylist      
 modcnt     
 save         
 settings     
 space        
 ss           
 tilemsg    
 versionmsg

 )

 

En fait tu met simplement en remarque à l'aide d'un point virgule devant les noms de fonction définies en variables .

Personnellement ce n'est pas du tout ma façon de faire, je ne déclare jamais mes sous-fonctions en variables locales, j'utilise simplement (setq ma_fonction nil) en fin de programme pour libérer la mémoire (ceci dans le cas où je sais que le programme ne sera lancé qu'une seule fois, autrement je laisse la fonction dispo).

 

Rappel: le DCL doit être dans un chemin de recherche, ou alors spécifier le chemin dans le programe StipMtext.

 

Pour Tramber:

Pour Ultra-Edit, jette un oeil à:

ftp://ultraedit.com/wf/autolisp.txt

ou

http://www.kpsoft.be/mirror/downloads/wf/autolisp.txt

 

Il faut simplement rajouter les lignes proposées au fichier wordfile.txt dans le dossier d'UltraEdit.

Puis dans le logiciel choisir dans le menu affichage -> Afficher avec (coloration syntaxique) ->Autolisp

 

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Super, les couleurs sont + variées, ca change.

 

Je vois aussi qu'il ne reconnait pas les synthaxes en majuscules, mais pas de prob'.

 

Merci encore.

C'est plutot cool de cliquer droit sur un fichier lisp et de l'ouvrir avec une visualisation propre sans ouvrir AutoCAD.

 

Well done.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)

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é