Поиск и замена символов в текстовой строке
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Поиск и замена символов в текстовой строке

Поиск и замена символов в текстовой строке

Ответ
Поиск в этой теме
Непрочитано 08.09.2009, 13:21 #1
Поиск и замена символов в текстовой строке
DEMOGOG
 
Регистрация: 05.06.2009
Сообщений: 15

Дублирование темы (случайно)

Последний раз редактировалось DEMOGOG, 08.09.2009 в 13:24. Причина: Дублирование темы (случайно)
Просмотров: 3890
 
Непрочитано 08.09.2009, 13:39
#2
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Поиграйся функциями STRLEN, SUBSTR, STRCAT и циклом REPEAT или WHILE.
А вообще-то есть команда _find.

Последний раз редактировалось E-degtyarev, 08.09.2009 в 14:01.
E-degtyarev вне форума  
 
Непрочитано 08.09.2009, 14:58
#3
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010


http://www.caduser.ru/forum/index.ph...D=44&TID=46551
Nike вне форума  
 
Непрочитано 08.09.2009, 15:01
#4
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


А еще лучше vl-string->list, vl-list->string и mapcar '(lambda ...


Код:
[Выделить все]
(defun change (a b str)
(apply 'strcat (mapcar '(lambda (x) (if (= x a) b x)) (mapcar 'chr (vl-string->list str))))
);end of change

(change "а" "A" "проверочная строка")
"проверочнAя строкA"
__________________
Когда в руках молоток все вокруг кажется гвоздями.

Последний раз редактировалось Дима_, 08.09.2009 в 15:14.
Дима_ вне форума  
 
Автор темы   Непрочитано 08.09.2009, 16:16
#5
DEMOGOG


 
Регистрация: 05.06.2009
Сообщений: 15


-> E-degtyarev
STRLEN, SUBSTR, STRCAT - вариант, но долго и муторно.
Команда _find - для текста в рисунке, а я речь веду про промежуточные строки, которые сидят в переменных и их нужно обработать соответствующим образом
DEMOGOG вне форума  
 
Непрочитано 08.09.2009, 16:34
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


http://forum.dwg.ru/showthread.php?t=15661
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 08.09.2009, 17:13
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Другие реализации предложения из #4:
trans-from-rus-to-translit и trans-from-en-to-rus
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 08.09.2009, 17:17
#8
DEMOGOG


 
Регистрация: 05.06.2009
Сообщений: 15


-> Nike и Дима_
с приставкой vl- в инфрасофткад не работает ((

-> kpblc
интересная ветка, пока разбираюсь, спасибо
DEMOGOG вне форума  
 
Непрочитано 08.09.2009, 20:02
#9
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


ну вместо vl-string->list подойдет
Код:
[Выделить все]
(defun strtolist (str)
(if (/= str "") (cons (ascii (substr str 1 1)) (strtolist (substr str 2 (strlen str)))))
);end of defun
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 09.09.2009, 11:16
#10
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Вот набросок на скорую руку без vl, vla, vlax.
Естественно это "болван", требующий доработки.
Код:
[Выделить все]
(defun C:ss ()
(setq pref "")
(setq stroka "ПРИВЕТ")
(setq stroka_old "И")
(setq stroka_new "Ю")
(setq dlina (strlen stroka))
(setq suff stroka)
(setq i 0)
(repeat	dlina
  (setq telo (substr suff 1 1))
  (setq suff (substr suff 2))
  (setq pref (substr stroka 1 i))
  (if (= telo stroka_old)
    (setq stroka1 (strcat pref stroka_new suff))
  )
  (setq i (+ 1 i))
)
(print stroka)
(print stroka1)
)
E-degtyarev вне форума  
 
Непрочитано 09.09.2009, 11:46
#11
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Код:
[Выделить все]
(defun replace_str (x y str / symb new-str)
 (setq new-str "")
 (while (not (equal str ""))
  (setq symb (substr str 1 1)
        str  (substr str 2)
  ) ;_  setq
  (if (equal symb x)
   (setq new-str (strcat new-str y))
   (setq new-str (strcat new-str symb))
  ) ;_  if
 ) ;_  while
) ;_  defun
(replace_str "о" "О" "проверочная строка")
->"прОверОчная стрОка"
CB вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Поиск и замена символов в текстовой строке



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Групповой поиск и замена текста Torino Программирование 22 05.03.2016 23:00
Поиск и замена текста на чертежах Autodesk Inventor Бриг Прочее ПО от Autodesk 4 21.01.2009 17:05
поиск и замена Dante AutoCAD 1 03.10.2007 18:26