Slt, Rapidement pour le principe une solution parmi d'autres, en s'appuyant sur la routine gc:str2lst de (gile), une routine très confortable d'utilisation lorsqu'il s'agit de "briser" des chaînes de caractères en fonction de caractères identifiables. La routine: ;; gc:str2lst
;; Transforme un chaine avec séparateur en liste de chaines
;;
;; Arguments
;; str : la chaîne
;; sep : le séparateur
(defun gc:str2lst (str sep / pos)
(if (setq pos (vl-string-search sep str))
(cons (substr str 1 pos) (gc:str2lst (substr str (+ (strlen sep) pos 1)) sep))
(list str)
)
)
L'application à ton cas: ;; Chaîne de texte de départ
(setq txt "(0.80) Zs=52.78") ; "(0.80) Zs=52.78"
;; Séparation de la chaîne de caractères en une liste de 2 chaînes
(setq txt (gc:str2lst txt " ")) ; ("(0.80)" "Zs=52.78")
;; prf = Supression du 1er et dernier caractère de la 1ère chaîne de caractères
(setq prf (substr (car txt) 2 (- (strlen (car txt)) 2))) ; "0.80"
;; ZGs = Séparation de la seconde chaîne de caractères, en gardant le 2ème élèment
(setq ZGs (cadr (gc:str2lst (cadr txt) "="))); "52.78"
Edit: Réponse rapide mais visiblement pas assez, BonusCAD est en grande forme à ce que je vois :)