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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > vl-string-right-trim

vl-string-right-trim

Ответ
Поиск в этой теме
Непрочитано 14.05.2010, 11:13 #1
vl-string-right-trim
sdv79
 
Инженер ЭОМ
 
Москва
Регистрация: 05.03.2009
Сообщений: 215

Подскажите почему
(vl-string-right-trim "." (vl-string-right-trim "LDT" "CS 50 8D.LDT"))
работает правильно и выдает "CS 50 8D"
(vl-string-right-trim ".LDT" "CS 50 8D.LDT")
выдает неправильный результат "CS 50 8" (не хватает D)
Просмотров: 3439
 
Непрочитано 14.05.2010, 11:18
#2
Capiton


 
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
<phrase 1=


Всё правильно.Она работает так Удаляет все перечисленые символы, а не заданную последовательность
можно использовать функцию дважды. Сначала удалить LTD, а потом точку.
Capiton вне форума  
 
Непрочитано 14.05.2010, 11:19
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Функция работает примерно так: берет крайний справа символ, сверяет, есть ли такой в образце, если есть - удаляет и берется за следующий, если нет - то заканчивает работу.
В этом случае лучше воспользоваться конструкцией:
Код:
[Выделить все]
(vl-filename-base "CS 50 8D.LDT")
Do$ вне форума  
 
Автор темы   Непрочитано 14.05.2010, 11:22
#4
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


Почему тогда в выражении (vl-string-right-trim ".LDT" "DHR 70.LDT") все верно
и нет ошибок?
Do$ спасибо.
sdv79 вне форума  
 
Непрочитано 14.05.2010, 11:24
#5
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


потому что
вдумчиво почитай то что выше написано
Do$ вне форума  
 
Непрочитано 14.05.2010, 11:45
#6
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Можно так вот ещё например:
Код:
[Выделить все]
(cadr (fnsplitl "CS 50 8D.LDT"))
Makswell вне форума  
 
Непрочитано 14.05.2010, 11:56
#7
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Откуда такой зверь: fnsplitl?
Мой автокад ее распознал, но в справке о ней ничего нет!
Из экспрессов чтоли?
Do$ вне форума  
 
Непрочитано 14.05.2010, 13:38
#8
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Это недокументированная, но тем не менее стандартная функция Автолиспа.
Ибо:
Цитата:
_$ (atoms-family 1 '("fnsplitl"))
("FNSPLITL")
А работает она так:
Цитата:
_$ (fnsplitl "D:\\path\\CS 50 8D.LDT")
("D:\\path\\" "CS 50 8D" ".LDT")
_$ (fnsplitl "CS 50 8D.LDT")
("" "CS 50 8D" ".LDT")
_$ (fnsplitl "D:\\path\\")
nil
Makswell вне форума  
 
Автор темы   Непрочитано 14.05.2010, 13:49
#9
sdv79

Инженер ЭОМ
 
Регистрация: 05.03.2009
Москва
Сообщений: 215
Отправить сообщение для sdv79 с помощью Skype™


попробовал fnsplitl без экспресса, работает.
Do$, подскажи не понимаю.
(vl-string-right-trim ".LDT" "CS 50 8D.LDT")
выдаст"CS 50 8" т.е удаляет D
(vl-string-right-trim ".LDT" "DHR 70.LDT")
выдаст "DHR 70"
Судя по #3 должно удалить D? при этом вернуть "HR 70"
sdv79 вне форума  
 
Непрочитано 14.05.2010, 14:05
#10
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


vl-string-right-trim
удаляет символы только справа.
Цитата:
Сообщение от sdv79 Посмотреть сообщение
(vl-string-right-trim ".LDT" "DHR 70.LDT")
выдаст "DHR 70"
"D" осталась потому, что слева в строке находится.
Вот если использовать vl-string-trim, тогда и слева и справа символы поудаляются.
Makswell, получается, эта FNSPLITL то же самое, что:
Код:
[Выделить все]
(lambda (str)
   (if (/= (vl-filename-base str) "")
     (list (vl-filename-directory str)
    (vl-filename-base str)
    (vl-filename-extension str)
     ) ;_ end of list
   ) ;_ end of if
 ) ;_ end of lambda
То есть три функции "в одном флаконе"?

Последний раз редактировалось Do$, 14.05.2010 в 14:15.
Do$ вне форума  
 
Непрочитано 14.05.2010, 14:47
#11
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Do$ Посмотреть сообщение
То есть три функции "в одном флаконе"?
Ага, видимо так.
Makswell вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > vl-string-right-trim



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать блоки из одного чертежа в другой молод и перспективен Программирование 4 14.02.2010 20:22
Сомневаюсь в правильности своего перевода hwd Программирование 11 26.10.2009 08:43
Хочу сделать линии, по которым не режет TRIM I.Van AutoCAD 9 03.06.2008 20:30
DwgRuLispLib: Преобразование значения в строку Кулик Алексей aka kpblc Библиотека функций 26 06.12.2007 19:30
функции для работы с ini-файлами ivspec Программирование 4 08.08.2006 11:43