Zobrazit plnou verzi příspěvku: Text na znaky

Konzal
05.05.2008, 10:01
Potřeboval bych pomoc s funkci na rozložení textu na jednotlivé znaky. Přečtu z razítka výkresu text (kód) a potřebuju zpracovat seznam jeho jednotlivých písmenek. S Lispem začínám a nevím si moc rady. Přečtený text mám, ale nevím jak na ty písmenka.

Vladimír Michl
05.05.2008, 10:05
To jde řešit buď nějakou smyčkou a podřetezci (substr) nebo elegantněji přes mapcar - zkuste si třeba:
[CODE]
(mapcar 'chr (vl-string->list "Můj řetězec"))[/CODE]

Seiner
05.05.2008, 10:14
Což o to, elegantní to je. Otázka je, co s tím pak dál :-)
Jinak - co p. Konzal zamýšlí.
Funkce SUBSTR je opravdu použitelná. S její pomocí jsem dělal kdysi funkci najdi-nahraď pro nadstavbu rohového razítka. Dělal jsem si pomocnou fci, která mi řešila výskyt hledaného a určovala text před a za hledaným.
 
(defun find(co vcem / i)(setq pred "" po "" lco (strlen co) lvcem (strlen vcem) i 1 jetam nil)(while (<= i  lvcem)  (if (= co (substr vcem i lco))(progn   (setq pred (substr vcem 1 (- i 1)))   (setq po (substr vcem (+ i lco) ))   (setq i lvcem jetam T)  )   (setq i (1+ i))
  )))

Konzal
05.05.2008, 10:44
Díky, ta mapcar funkce dělá to co potřebuju. Podle písmenek z kódu pak vkládám do výkresu předem nadefinované bloky.