не подскажите как в действии реализовать быстрый алгоритм очистки вставленной в строковое поле строки от ненужных символов
например юзер вставил строку
"Производственно-техническая компания *ПТК* <АСПЕКТ>"
нужно по шаблону
'<>()*".,$#@'
очистить строку от этих символов
возможно используя из действия инструменты SQL (применив SQL только как средство вычисления типа Select 1+2) без запроса как такового (к таблицам)
может кто уже реализовал или есть какие соображения?
можно конечно в действии на двух шагах зациклить и сдвигая шаблон вырезать из строки все что надо
но наверняка есть более красивое решение???
RegExp или как реализовать Алгоритм очистки строки от мусора
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
RegExp или как реализовать Алгоритм очистки строки от мусора
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
да появилась, круто , но один символ, а хотелось бы всю мощь регулярных выражений, я уже на sql что-то присмотрел - смысл в вызове RegExp'a VBScript через WHS средствами SQL - конечно выглядит кривовато... но когда еще Лоция прилепит скрипты к действиям,а так уже можно работать
я вообще все больше склоняюсь к тому чтобы все вычисления проводить на стороне самого SQL т.к. представленный Лоцией интерпритатор - во многих элементарных случаях (работа с битами и т.д.) уже не спасает
ну это мое личное мнение


я вообще все больше склоняюсь к тому чтобы все вычисления проводить на стороне самого SQL т.к. представленный Лоцией интерпритатор - во многих элементарных случаях (работа с битами и т.д.) уже не спасает

ну это мое личное мнение


Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Re: RegExp или как реализовать Алгоритм очистки строки от мусора
вопрос решили шагом типа скрипт
который обращается к модулю с нашими функциями где
можно и в mssql напрямую... но неохота 
и паттерн наверно можно красивей оформить - но не знаю как
Код: Выделить всё
Sub ClearString
LsVars.SetVarValue "tmp", cStr(RIC_Function.ClearCopyPaste(LsVars.GetVarValue("tmp")))
end sub
Код: Выделить всё
...
'-----------------------Очистить строку от всех лишних символов операции Copy/Paste-------------------------
Function ClearCopyPaste(Desc)
Dim RegExp
'тест
'Desc = " " & Chr(34) & "a,.{s. d]f\g'a/ ё-2s" & vbTab & "d(f)7 8a" & vbCr & "sdf" & Chr(34) & "adf "
Set RegExp = CreateObject("VBScript.RegExp")
With RegExp
.IgnoreCase = True
.Global = True
'убить пробелы >2
.Pattern = "[\s]{2,}"
Desc = .Replace(Trim(Desc), " ")
'убить все лишнее (вначале и в конце удалить ' и " в середине оставить буквы и цифры + одинарный пробел +'+"+(+)+-)
.Pattern = "(^[\x22\x27]{1,})|([^a-zA-Zа-яА-ЯЁё\d\x20\x22\x27()-«»])|([\x22\x27]{1,}$)"
Desc = .Replace(Desc, "")
End With
Set RegExp = Nothing
ClearCopyPaste=Desc
End Function
...

и паттерн наверно можно красивей оформить - но не знаю как

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный