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

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

Как изменить символ в строке?

Ответ
Поиск в этой теме
Непрочитано 27.07.2009, 12:56 #1
Как изменить символ в строке?
молодой человек
 
Регистрация: 14.11.2007
Сообщений: 159

Здравствуйте! Подскажите, пожалуйста.
Есть переменные :
(setq rr "5\\Pшаг 250")
(setq n "1")
Конечный результат:
(setq kon "1\\Pшаг 250").
Заранее спасибо
Просмотров: 4094
 
Непрочитано 27.07.2009, 13:37
#2
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
(setq kon (strcat n rr))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.07.2009, 14:09
#3
молодой человек


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


Спасибо за ответ, но мне надо не соединить, а заменить первый символ ограниченный знаком -"\\" на переменную n. То есть:
(setq rr "100\\Pшаг 250")
(setq n "10")
Конечный результат:
(setq kon "10\\Pшаг 250").

или
(setq rr "кк\\Pшаг 250")
(setq n "1")
Конечный результат:
(setq kon "1\\Pшаг 250").
молодой человек вне форума  
 
Непрочитано 27.07.2009, 14:22
#4
Кулик Алексей aka kpblc
Moderator

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


В таком случае надо либо четко знать, сколько символов сначала строки заменять, либо четко определять "разделитель". Для варианта "разделителя" = "\\":
Код:
[Выделить все]
(strcat n (substr rr (1+ (vl-string-search "\\" rr))))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.07.2009, 14:29
#5
молодой человек


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


То что надо!!! Большое Вам спасибо!
молодой человек вне форума  
 
Непрочитано 28.09.2009, 12:54
#6
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


А если такая ситуация
(setq text "asdf_fgh_hjk")
надо заменить все "_" на пробел что бы получилось "asdf fgh hjk"
ALFMario вне форума  
 
Непрочитано 28.09.2009, 13:03
#7
Кулик Алексей aka kpblc
Moderator

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


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

учусь на ГИПа
 
Регистрация: 21.12.2006
С-Петербург
Сообщений: 1,721
<phrase 1=


Offtop: не фигасе темы
motor-serg вне форума  
 
Непрочитано 28.09.2009, 14:18
#9
Кулик Алексей aka kpblc
Moderator

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


motor-serg, :?:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.09.2009, 14:59
#10
motor-serg

учусь на ГИПа
 
Регистрация: 21.12.2006
С-Петербург
Сообщений: 1,721
<phrase 1=


это хоть к чему относиться?
motor-serg вне форума  
 
Непрочитано 28.09.2009, 15:01
#11
ALFMario


 
Регистрация: 11.10.2007
Gomel
Сообщений: 68


я сделал так
(while (VL-STRING-SEARCH "_" text) (setq text (VL-STRING-SUBST " " "_" text)))
ALFMario вне форума  
 
Непрочитано 28.09.2009, 15:10
#12
Кулик Алексей aka kpblc
Moderator

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


ALFMario, а если надо заменить "_" на "_123" ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 28.09.2009, 15:22
#13
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


для замены единичных символов, те. одни символ на другой, лучше использовать встроенную функцию:
Код:
[Выделить все]
(setq text (vl-string-translate "_" " " text))
Из плюсов, можно заменить сразу весь алфавит на другой, не говоря уже о отдельном знаке...

Код:
[Выделить все]
(setq text (vl-string-translate "123" "abc" text))
заменит 1 на a, 2 на b, 3 на c.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 28.09.2009, 19:50
#14
Дима_

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


Я посоветую для строк использовать 2 функци vl-string->list, vl-list->string, а все остальное стандартными функциями для списков.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как изменить символ в строке?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в AutoCad 2006 изменить масштаб только по оси X или Y Никл AutoCAD 1 21.08.2008 13:06
Как у текста изменить Width factor ? inst2005 Программирование 2 05.05.2008 01:19
Как изменить surftab1? Den3101 AutoCAD 1 24.07.2007 15:01