Страница: 1 |
Есть у кого-нибудь пример преобразования текста. Например: strBegin="е 960.56.14.67-01(а)" преобразовать в strEnd="Е96056146701А" Буду очень благодарен
Я реализовал но мне кажется это не очень граммотно и корректно Public Function UpGradeText(strUpgrade As String) As String Dim i As Integer Dim j As Integer Dim LenString As Integer Dim sSimvolArray() As String LenString = Len(strUpgrade) ReDim sSimvolArray(LenString) For i = 1 To LenString sSimvolArray(i) = Mid$(UCase(strUpgrade), i, 1) Next i For i = 1 To LenString For j = 1 To 46 If sSimvolArray(i) = Chr$(j) Then sSimvolArray(i) = "" Next j For j = 58 To 64 If sSimvolArray(i) = Chr$(j) Then sSimvolArray(i) = "" Next j For j = 91 To 96 If sSimvolArray(i) = Chr$(j) Then sSimvolArray(i) = "" Next j For j = 123 To 187 If sSimvolArray(i) = Chr$(j) Then sSimvolArray(i) = "" Next j Next i UpGradeText = "" For i = 1 To LenString UpGradeText = UpGradeText & sSimvolArray(i) Next i End Function function ConvertText(text as string) dim res as string for i=1 to len(text) b$=mid(text,i,1) if b$=" " or b$="." or b$="(" or b$=")" or b$="-" then b$="" res=res &ucase$(b$) next i ConvertText=res end function В цикле использовать Mid$. Если символ попадает в ASCII диапазон цифр и букв, оставлять, нет - удалять. 48-57/65-90/97-122 Можно так: в цикле перебираешь значения и проверяешь условие выборкой Case "E","0" to "9","A" добавляешь в строку Case Else не добавляешь End Case To CyRax: а нафига там нужен case else и почему ты проверяешь на заглавные, а как видно надо все строчные преобразовать в заглавные и вообще юзай мою функцию! Govnuk Не буду спорить по такому пустяковому вопросу. А вообще мысль верная Case Lcase("E"),"0" to "9",Lcase("A") Советую тебе ув. Говнюк использовать такой стиль написания, если ты хочешь что-бы тот, кто будет читать твой исходник, не помянул тебя неоднократно "незлым" тихим словом. Вы как то узко проблему расматриваете, Case'ми запаришься все символы прописывать обозночение может быть какое угодно даже вот такое strBegin="dhgGFПАЫРРО12.34.23.12.45Комб-дет01.пр(с)" и что по вашей схеме надо все символы в case загонять? да так опухнуть можно. Друг мой, ну вы прям как вчера из детсада Попробуйте наоборот выбрать только исключения. Так исключений почти столько же. И какая разница. Чего тут спорить? case1="ABCDEF" case2="0123456789" case3="|/%" for i=1 to len(test) if instr(case1,mid(test,i,1)) then res=res & ucase(mid(test,i,1)) end if if instr(case2,mid(test,i,1)) then res=res & mid(test,i,1) end if if instr(case3,mid(test,i,1)) then res=res & "_" end if next Страница: 1 |
Вопрос: Как реализовать функцию работы с текстом
Добавлено: 03.12.03 06:49
Автор вопроса: Born | ICQ: 178155071
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Born
ICQ: 178155071
Вопросов: 21
Ответов: 52
Профиль | | #1
Добавлено: 03.12.03 07:14
Номер ответа: 2
Автор ответа:
NeForm@t
ICQ: 252999255
Вопросов: 36
Ответов: 247
Web-сайт:
Профиль | | #2
Добавлено: 03.12.03 15:09
Номер ответа: 3
Автор ответа:
Malyav
ICQ: 8440085
Вопросов: 15
Ответов: 117
Web-сайт:
Профиль | | #3
Добавлено: 03.12.03 16:17
Номер ответа: 4
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #4
Добавлено: 04.12.03 05:26
Номер ответа: 5
Автор ответа:
NeForm@t
ICQ: 252999255
Вопросов: 36
Ответов: 247
Web-сайт:
Профиль | | #5
Добавлено: 04.12.03 11:55
Номер ответа: 6
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #6
Добавлено: 05.12.03 06:17
Номер ответа: 7
Автор ответа:
Born
ICQ: 178155071
Вопросов: 21
Ответов: 52
Профиль | | #7
Добавлено: 05.12.03 09:26
Номер ответа: 8
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #8
Добавлено: 06.12.03 06:25
Номер ответа: 9
Автор ответа:
Born
ICQ: 178155071
Вопросов: 21
Ответов: 52
Профиль | | #9
Добавлено: 09.12.03 11:34
Номер ответа: 10
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #10
Добавлено: 09.12.03 16:42