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

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

DwgRuLispLib: Функция поиска в списке строки по маске

Ответ
Поиск в этой теме
Непрочитано 13.01.2008, 22:02 #1
DwgRuLispLib: Функция поиска в списке строки по маске
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

Код:
[Выделить все]
;;; ************************************************************************
;;; * Библиотека DWGruLispLib Copyright ©2007  DWGru Programmers Group
;;; *
;;; * DwgRu-List-String-Search
;;; *
;;; * 14/01/2008 Версия 0001.    Андрей Лазебный (Supermax)
;;; ************************************************************************
;;;
 ;;; Описание:
  ;;; В списке состоящем из строк, находит строку по маске 
 ;;; Синтаксис: 
  ;;; (dwgru-list-string-search string standard)
 ;;; Аргументы:
  ;;; string - список состоящий из строк
  ;;; standard - маска (строка) 
   ;;; 
   ;;; маска может содержать все спецсимволы типа *, #, и прочие, перечисленные в описании функции wcmatch
   ;;; 
  ;;; Возврат: 
   ;;; Первая найденная строка удовлетворяющая маске
 
(defun dwgru-list-string-search (string standard / )
(car (vl-member-if (function (lambda (x) (wcmatch x standard))) string))
)

Вложения
Тип файла: lsp DwgRu-List-String-Search.lsp (909 байт, 295 просмотров)

Просмотров: 17048
 
Непрочитано 14.01.2008, 01:58
#2
Кулик Алексей aka kpblc
Moderator

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


А почему бы не использовать нечто вида:
Код:
[Выделить все]
(defun dwgru-list-string-search (lst-string mask case / loc_lst loc_mask)
                                ;|
*    Находит строки в списке по маске
*    Параметры вызова:
	lst-string	список строк.
	mask		маска поиска. Допускается использованием символов по
			аналогии с wcmatch. Добавления символов не производится
	case		учитывать регистр (t) или нет (nil)
*    Примеры вызова:
(dwgru-list-string-search '("Autodesk" "autocad") "auto*" nil)	; '("Autodesk" "autocad")
(dwgru-list-string-search '("Autodesk" "autocad") "auto*" t)	; '("autocad")
(dwgru-list-string-search '("Autodesk" "autocad") "*caD" nil)	; '("autocad")
(dwgru-list-string-search '("Autodesk" "autocad") "cAd*" t)	; nil
|;
  (setq loc_mask (if case
                   mask
                   (strcase mask)
                   ) ;_ end of if
        loc_lst  (vl-remove-if
                   '(lambda (x) (wcmatch loc_mask x))
                   (if case
                     lst-string
                     (mapcar 'strcase lst-string)
                     ) ;_ end of if
                   ) ;_ end of vl-remove-if
        ) ;_ end of setq
  (vl-remove-if-not
    (function
      (lambda (x)
        (and (member (setq x (if case
                               x
                               (strcase x)
                               ) ;_ end of if
                           ) ;_ end of setq
                     loc_lst
                     ) ;_ end of member
             (wcmatch x loc_mask)
             ) ;_ end of and
        ) ;_ end of lambda
      ) ;_ end of function
    lst-string
    ) ;_ end of vl-remove-if
  ) ;_ end of defun
ИМХО такое решение более универсально. А вычленить первое никогда не поздно
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Библиотека функций > DwgRuLispLib: Функция поиска в списке строки по маске

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DwgRuLispLib: Функция открытия диалога Open\Save As файла (файлов) Supermax Библиотека функций 20 14.03.2018 10:05
структурированный список Holon Программирование 22 11.09.2007 14:09
Не работает функция поиска в автокад 2006 CеРеГа AutoCAD 6 31.07.2006 16:33