powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / обработка текстовой строки
24 сообщений из 24, страница 1 из 1
обработка текстовой строки
    #36074980
romazeka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как из текстовой строки удалить все сиволы и оставить только цифры? на VBA
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075016
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romazeka1Как из текстовой строки удалить все сиволы и оставить только цифры? на VBA
В общем случае? или какой-то частный случай, например все цифры рядом и не разбросаны по текстовой строке? или цифры всегда в конце?
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075055
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function ClearName(ByVal strText As String, ByVal strPattern As String) As String
    Dim RegExp As Object
    Set RegExp = CreateObject("vbscript.regexp")
    With RegExp
        .Pattern = strPattern
        .Global = True
        ClearName = .Replace(Trim(strText), "")
    End With
End Function

Sub Test()
    MsgBox ClearName("gyes573jd83j09 ~!@#)", "[^0123456789]")
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075056
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romazeka1Как из текстовой строки удалить все сиволы и оставить только цифры? на VBA
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Function NumbersOnly(srcStr As String) As String
Dim objRegEx As Object
Set objRegEx = CreateObject("VBScript.RegExp")
    With objRegEx
        .Global = True
        .Pattern = "\D"
        NumbersOnly = .Replace(srcStr, vbNullString)
    End With
Set objRegEx = Nothing
End Function
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075061
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
аааа! апаздал!
зато у меня .Pattern красивше
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075132
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а если без регулярных выражений?
И вопрос если в числе дробная часть, разделитель дробной части убьет?
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075174
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadИ вопрос если в числе дробная часть, разделитель дробной части убьет?
топикстартерКак из текстовой строки удалить все сиволы и оставить только цифры ?
DeggasadНу а если без регулярных выражений?перебор посимвольно;
перевод в массив байт StrConv(srcStr, vbFromUnicode) и перебор побайтово;
еще чего-нибудь :)
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075180
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadНу а если без регулярных выражений?
А зачем без регулярных выражений?

DeggasadИ вопрос если в числе дробная часть, разделитель дробной части убьет?
Дык ты добавь в маску разделитель :-)

"[^0123456789,]"
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075186
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadНу а если без регулярных выражений?перебор посимвольно;
перевод в массив байт StrConv(srcStr, vbFromUnicode) и перебор побайтово;
еще чего-нибудь :)[/quot]
Да нет ничего, просто, помню было где-то на форуме похожая тема, но не нашел. Там было какое-то интересное решение без оных...:)
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075193
romazeka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Офигеть! Неуспел вопрос задать уже ответов..пара ))
пасиба! такой код мне не знаком буду пробовать.

А если все тоже самое но оставить пробелы??
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075199
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)"[^0123456789,]"

Собственно, что это я: "[^0-9,]"

...и да, \D - красивше :-)
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075201
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)DeggasadНу а если без регулярных выражений?
А зачем без регулярных выражений?
незнаю :)

KL (XL)DeggasadИ вопрос если в числе дробная часть, разделитель дробной части убьет?
Дык ты добавь в маску разделитель :-)
"[^0123456789,]"
Так тогда все разделители останутся
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075203
romazeka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А , понял, добавить в маску пробел!
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075211
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Sub Test()
    MsgBox ClearName("g yes5 7,3j d83j0 9 ~!@#)", "[^0-9 ]")
End Sub
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075217
romazeka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а зачем знак степени в маске?
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075218
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadТак тогда все разделители останутся
Какие все? Разделитель - он или разделитель или нет :-) Может пример приведешь?
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075220
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romazeka1а зачем знак степени в маске?
Это означает - найти все кроме...
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075227
romazeka1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL)DeggasadТак тогда все разделители останутся
Какие все? Разделитель - он или разделитель или нет :-) Может пример приведешь?

Наверно Deggasad имеет в виду что останутся всякие запятые которые были в тексте
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075231
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
romazeka1KL (XL)DeggasadТак тогда все разделители останутся
Какие все? Разделитель - он или разделитель или нет :-) Может пример приведешь?

Наверно Deggasad имеет в виду что останутся всякие запятые которые были в тексте
да именно
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075297
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда каков критерий того, разделитель запятая или нет? То, что между цифрами? А если между цифрами не одна запятая? А если запятая - разделитель разрядов? А если число записано в научной нотации (9+E307) или отрицательное (-2000), а мы уничтожили и "+" и "-" и "E"?
...
Рейтинг: 0 / 0
обработка текстовой строки
    #36075469
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)Тогда каков критерий того, разделитель запятая или нет? То, что между цифрами? А если между цифрами не одна запятая? А если запятая - разделитель разрядов? А если число записано в научной нотации (9+E307) или отрицательное (-2000), а мы уничтожили и "+" и "-" и "E"?
Ну да. Так и есть.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
обработка текстовой строки
    #38230359
romazeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите я такой функцией оставляю из строки только буквы. Как эти буквы упорядочить (по алфавиту) ?
...
Рейтинг: 0 / 0
обработка текстовой строки
    #38230931
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот функция для сортировки букв в строке методом пузырька. Написано дико неоптимально, но для учебного задания сойдет :)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Function SortCharsBubble(ByVal s As String, Optional Compare As VBA.VbCompareMethod = VBA.VbCompareMethod.vbTextCompare) As String
Dim i&, j&, d$
For i = 1 To Len(s) ' - 1
    For j = 1 To Len(s) - i
        If StrComp(Mid$(s, j, 1), Mid$(s, j + 1, 1), Compare) > 0 Then
            d = Mid$(s, j, 1)
            Mid$(s, j, 1) = Mid$(s, j + 1)
            Mid$(s, j + 1) = d
        End If
    Next
Next
SortCharsBubble = s
End Function


Тест в окне Immediate

Код: plaintext
1.
2.
3.
?SortCharsBubble("Как эти буквы упорядочить")
   абвдииКккоопрттуучыьэя
?SortCharsBubble("Как эти буквы упорядочить", vbBinaryCompare)
   Кабвдииккоопрттуучыьэя

В первом случае буквы "к" и "К" не различаются, во втором - различаются.
...
Рейтинг: 0 / 0
обработка текстовой строки
    #38230965
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийНаписано дико неоптимальнонаписано-то как раз оптимально, сам метод дикий ))))
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / обработка текстовой строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]