Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: tujn08 от 31-03-2017, 09:01:46

Название: Сравнение строк
Отправлено: tujn08 от 31-03-2017, 09:01:46
Привет!
Что-то не получается работать с "wcmatch"

Надо сравнивать строки - могут отличаться словами или цифрами.

Код - Auto/Visual Lisp [Выбрать]
  1. Команда: (wcmatch "qweqwe asdasd" "123,*")
  2. T

живой пример:

Код - Auto/Visual Lisp [Выбрать]
  1. (wcmatch aa (strcat abc_abc ",*"))
  2. T
  3. (princ aa)
  4. "Общая длина - 555м"
  5.  
  6. (princ abc_abc)
  7. "Общая длина - "
тут все нормально, а вот тут:

Код - Auto/Visual Lisp [Выбрать]
  1.  (wcmatch aa (strcat abc_abc ",*"))
  2. T
  3.  
  4. (princ aa)
  5. "Общая длина в лотке - 555м"
  6.  
  7. (princ abc_abc)
  8. "Общая длина - "

Шаблон отличается "- " и "в лотке - "   почему Т ?

Уже подсказали - в книге не совсем ясно расписано про удовлетворении хотя бы одной из масок.
Название: Re: Сравнение строк
Отправлено: Александр Ривилис от 31-03-2017, 11:27:48
Видимо ты не понимаешь как работает (wcmatch). Начни со справки по этой функции. Тогда ты поймёшь, почему:

Command: (setq abc_abc "Общая длина - ")
"Общая длина - "
Command: (setq aa "абракадабра")
"абракадабра"
Command: (wcmatch aa (strcat abc_abc ",*")) T