Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
Aeliot
176 / 61 / 3
Регистрация: 17.11.2011
Сообщений: 318
1

Очистка строки от от спец. символов ("Tab", перевод каретки и пр.)

17.11.2011, 12:31. Просмотров 6326. Ответов 1
Метки нет (Все метки)

Порой надо очистить строку от спец. символов ("Tab", перевод каретки и пр.)
Во готовая функция очистки строки. За одно и от пробелов почистит.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Function SpecSimvOchist( _
        ByVal strSearchIn As String, _
        Optional ByVal blnTrim As Boolean = False, _
        Optional ByVal blnSpaseDelete As Boolean = False _
        ) As String             '=== функция: очистка строки от спец. символов
    ' strSearchIn       - исходная строка
    ' blnTrim           - флаг: удалить начальные и конечные пробелы из итоговой строки
    ' blnSpaseDelete    - флаг: удалить все пробелы
    Dim i As Integer
    Dim strNew As String        ' "очищенная" строка
    Dim siAsc As Integer        ' ANCI код символа
    Dim siMid As String * 1     ' выделенный символ
    Dim siLen As Integer        ' длинна очищаемой строки
    
    strNew = strSearchIn    ' перадаём строку локальной переменной
    ' удаляем все пробелы из строки
    ' если удаляем все пробелы, лучше это сделать сразу - цикл будет короче
    If blnSpaseDelete = True Then strNew = Replace(strNew, " ", "")
    siLen = Len(strNew)     ' считаем длинну строки
    For i = 1 To siLen      ' перебераем все символы строки по циклу
        siMid = Mid(strSearchIn, i, 1)  ' получаем символ из строки
        siAsc = Asc(siMid)              ' преобразовываем полученный символ в ANCII код
        If siAsc < 32 Then strNew = Replace(strNew, siMid, "")  ' удаляем спец.символ
    Next i
    ' удаляем пробелы в начале и в конце строки. Это лучше делать в конце цикла,
    ' т.к. в исходной строке могут быть пробелы "экранированные" спец. символами
    If blnTrim = True Then strNew = Trim(strNew)
    SpecSimvOchist = strNew             ' возвращаем результат
End Function
Цитата Сообщение от Апострофф
В данном примере много лишних переменных и действий
Так и есть. Это было сделано специально, чтоб на стадии создания приложения и его отладки можно было бы просмотреть каждый символ (в режиме отладчика). В последующем она так и прижилась -- справляется "зараза" с возложенными на неё обязанностями и в таком виде.
Но за просвещение спасибо.
9
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2011, 12:31
Ответы с готовыми решениями:

Очистить строку от спец. символов ("Tab", перевод каретки и пр.)
Источник: http://www.cyberforum.ru/post2181065.html &gt;То же самое, только в два раза быстрее И как...

Обработка последовательности байт "возврат каретки", "перевод строки"
Суть проблемы такова: В Windows блокнот не переваривает последовательность байт &quot;возврат...

В последнем абзаце удалить все вхождения символов "+","-", "*"
Дан любой текст В последнем абзаце удалить все вхождения символов &quot;+&quot;,&quot;-&quot;, &quot;*&quot;.

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

Как перейти из "Заголовок формы" в "Область данных" по нажатию "Tab" или другой комбинации клавиш?
Как перейти из &quot;Заголовок формы&quot; в &quot;Область данных&quot; по нажатию &quot;Tab&quot; или другой комбинации клавиш?

1
Sasha_Smirnov
5494 / 1322 / 144
Регистрация: 08.02.2009
Сообщений: 4,042
Записей в блоге: 29
18.11.2011, 05:09 2
Цитата Сообщение от Апострофф Посмотреть сообщение
Это всё, конечно, хорошо!
Но в таких темах код хотелось бы видеть хотя бы внешне пооптимальнее
Нечто подобное делал для ввода чисел: Теория чисел: печать простых делителей (строки 17—20).

Идея в том, чтобы из строки, выделенной в документе, в окно ввода инпутбокса «пускать» только цифры.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 05:09

Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ"
Даны две строки. Если они начинаются с одинаковых символов, то напечатать &quot;ДА&quot;, иначе - &quot;НЕТ&quot;. (5)

Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ"
Помоги те пожалуйста, решите сколько сможете. Задачи на строки. 6. Даны две строки. Если они...

После каждой строки содержащей слово "бит" добавить строку, состоящую из десяти символов "*"
Помогите пожалуйста.. очень много зависит от этой лабораторной.. мне очень срочно надо, заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.