MyTetra Share
Делитесь знаниями!
Чистка строки от "мусора" по списку, переданному через массив
16.03.2019
23:43
Раздел: !Закладки - VBA - Access - msa.polarcom.ru - 13 Преобразование Строк

Чистка строки от "мусора" по списку, переданному через массив

Пример использования функции:

Dim i%, s$

Dim ch() As Variant 'массив


i = CInt(TB_SelLength)

If i > 30 Then i = 30

s = Mid(Me!txtTextField, 1, i) 'взяли строку из поля

'Создаём массив из подлежащего удалению из строки перечислением через запатую:

'(Поясню: тут, в начале символ перевода строки, а в конце ТРИ пробела подряд)

ch = Array(vbCrLf, ".", ",", ":", ";", "?", "!", "(", ")", " ")


'Очищаем от перечисленного выше с заменой на пробел

Me!txtSearch = CleanStrByArray(s, ch, " ")



Функция:

Public Function CleanStrByArray(sString$, vArr() As Variant, Optional sReplace$ = "") As String

'es 29.07.2016

'Чистка строки от "мусора" по списку, переданному через массив (vArr)

'Возвращает очищенную строку

'Удобно когда необходимо почистить строчку от нескольких вариантов вхождений

'--------------------------------------------------------------------------

'Аргументы:

' sString - Очищаемая строка

' vArr - массив заменяемого

' sReplace - Опциональный - На что это всё меняем (по умолчанию "")

'--------------------------------------------------------------------------

Dim i%, sSearch$, sReturn$


On Error GoTo CleanStrByArray_Err

sReturn = sString

For i = LBound(vArr) To UBound(vArr)

sSearch = vArr(i)

sReturn = Replace(sReturn, sSearch, sReplace, 1) 'убираем

Next i

CleanStrByArray = Trim(sReturn)


CleanStrByArray_Bye:

Exit Function


CleanStrByArray_Err:

CleanStrByArray = ""

MsgBox "Ошибка " & Err.Number & vbCrLf & Err.Description & vbCrLf & "в процедуре: CleanStrByArray", vbCritical, "Error in module modSearchInTextBox"

Resume CleanStrByArray_Bye

End Function




Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования