;;; ************************************************************************ ;;; * Библиотека DWGruLispLib Copyright ©2007 DWGru Programmers Group ;;; * ;;; * dwgru-string-replace ;;; * ;;; * 03/12/2007 Версия 0001. Сергей Зуев (ShaggyDoc) ;;; ************************************************************************ (defun lispgru-string-replace (string old_substr new_substr / pos) ;;; Функция замены вхождений подстроки (old_substr) в исходную строку (string) на новые (new_substr). ;;; Регистрозависимо ;;; Параметры вызова: ;;; string исходная строка ;;; ols_substr старая подстрока ;;; new_substr новая подстрока ;;; Возврат: ;;; строку (String) ;;;* Формат вызова: ;;;* (dwgru-string-replace "ИСХОДНАЯ СТРОКА" "СТАРАЯ ПОДСТРОКА" "НОВАЯ ПОДСТРОКА") ;;;* Принимает три аргумента типа 'STR передача аргументов другого типа приводит к ошибке. ;;;* Возвращает строку с заменой всех вхождений старой подстроки в исходной строке на новую. ;;;* Чувствительна к регистру символов. Проверка корректности аргументов не проводится. ;;;* Пример: ;| (lispru-string-replace "Здесь были ВаВася и ВаВаВаня. Вася" "Ва" "Бу") ;_Результат "Здесь были БуБуся и БуБуБуня. Буся" (lispru-string-replace "1 2 3" " " " ") ;_Результат "1 2 3" |; (while (setq pos (vl-string-search old_substr string)) (setq string (strcat (substr string 1 pos) new_substr (lispru-string-replace (substr string (+ (strlen old_substr) pos 1)) old_substr new_substr ) ;_ end of ru-string-replace ) ;_ end of strcat ) ;_ end of setq ) ;_ end of while string ) ;_ end of defun