Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / обработка текстовой строки / 24 сообщений из 24, страница 1 из 1
06.07.2009, 13:13
    #36074980
romazeka1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
Как из текстовой строки удалить все сиволы и оставить только цифры? на VBA
...
Рейтинг: 0 / 0
06.07.2009, 13:22
    #36075016
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
romazeka1Как из текстовой строки удалить все сиволы и оставить только цифры? на VBA
В общем случае? или какой-то частный случай, например все цифры рядом и не разбросаны по текстовой строке? или цифры всегда в конце?
...
Рейтинг: 0 / 0
06.07.2009, 13:31
    #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
06.07.2009, 13:32
    #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
06.07.2009, 13:34
    #36075061
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
аааа! апаздал!
зато у меня .Pattern красивше
...
Рейтинг: 0 / 0
06.07.2009, 13:48
    #36075132
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
Ну а если без регулярных выражений?
И вопрос если в числе дробная часть, разделитель дробной части убьет?
...
Рейтинг: 0 / 0
06.07.2009, 13:58
    #36075174
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
DeggasadИ вопрос если в числе дробная часть, разделитель дробной части убьет?
топикстартерКак из текстовой строки удалить все сиволы и оставить только цифры ?
DeggasadНу а если без регулярных выражений?перебор посимвольно;
перевод в массив байт StrConv(srcStr, vbFromUnicode) и перебор побайтово;
еще чего-нибудь :)
...
Рейтинг: 0 / 0
06.07.2009, 14:01
    #36075180
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
DeggasadНу а если без регулярных выражений?
А зачем без регулярных выражений?

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

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

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

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

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

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

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

Наверно Deggasad имеет в виду что останутся всякие запятые которые были в тексте
да именно
...
Рейтинг: 0 / 0
06.07.2009, 14:49
    #36075297
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
Тогда каков критерий того, разделитель запятая или нет? То, что между цифрами? А если между цифрами не одна запятая? А если запятая - разделитель разрядов? А если число записано в научной нотации (9+E307) или отрицательное (-2000), а мы уничтожили и "+" и "-" и "E"?
...
Рейтинг: 0 / 0
06.07.2009, 15:48
    #36075469
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
KL (XL)Тогда каков критерий того, разделитель запятая или нет? То, что между цифрами? А если между цифрами не одна запятая? А если запятая - разделитель разрядов? А если число записано в научной нотации (9+E307) или отрицательное (-2000), а мы уничтожили и "+" и "-" и "E"?
Ну да. Так и есть.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
18.04.2013, 10:33
    #38230359
romazeka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
Подскажите я такой функцией оставляю из строки только буквы. Как эти буквы упорядочить (по алфавиту) ?
...
Рейтинг: 0 / 0
18.04.2013, 14:37
    #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
18.04.2013, 14:56
    #38230965
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обработка текстовой строки
КазанскийНаписано дико неоптимальнонаписано-то как раз оптимально, сам метод дикий ))))
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / обработка текстовой строки / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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