Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

LISP : Suppression d'un ou plusieurs caractère dans une chaîne de caractère

2 RÉPONSES 2
RÉSOLU
Répondre
Message 1 sur 3
ftmanu777
257 Visites, 2 Réponses

LISP : Suppression d'un ou plusieurs caractère dans une chaîne de caractère

Bonjour la communauté 🙂

Soit X une chaîne de caractère qui correspond à "PointX\tpointY \tpointZ"

Ma question est la suivante: comment faire pour enlever le "\t" ou remplacer le "\t" par une "espace" par exemple pour avoir quelque chose comme "PointX pointY pointZ" (cas d'une espace)?

J'ai éssayé la "substr" mais le problème c'est que la valeur des points peut varier de 0.0000 à 10000000.0000

Merci à tout ce qui vont me répondre 🙂

 

2 RÉPONSES 2
Message 2 sur 3
Y.AUBRY
en réponse à: ftmanu777

Bonjour @ftmanu777 ,

 

Ci-joint un extrait d'une réponse de @_gile  dans ce topic.

 

La fonction substr retourne la sous-chaîne depuis l'index spécifié (base 1) et, optionnellement, de la longueur spécifiée.

La fonction vl-string-position retourne la position d'un caractère dans une chaîne.

Ce que veux obtenir, c'est la sous-chaine depuis le premier caractère (indice 1) d'une longueur égale à la position du caractère "_".

 

(substr str 1 (vl-string-position (ascii "_") str))

 

il faut donc dans ton cas rechercher la position de "\" dans ta chaine de caractère

 

A+ Yoan

Yoan AUBRY

EESignature

Message 3 sur 3
CADaSchtroumpf
en réponse à: ftmanu777

Bonjour,

Une fonction qui pourrait faire le job.

(defun string-subst (old_string new_string value_string / value_string nbs tmp_nbs)
  (setq nbs 0)
  (while nbs
    (if (setq nbs (vl-string-search old_string value_string (setq tmp_nbs nbs)))
      (setq
        value_string (vl-string-subst new_string old_string value_string tmp_nbs)
        nbs (1+ nbs)
      )
    )
  )
  value_string
)

Exemple d'utilisation:

(setq str "PointX\tpointY \tpointZ")
(string-subst "\t" " " str); --> "PointX pointY  pointZ"

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report