Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как реализовать функцию работы с текстом Добавлено: 03.12.03 06:49  

Автор вопроса:  Born | ICQ: 178155071 

Есть у кого-нибудь пример преобразования текста.

Например:

strBegin="е 960.56.14.67-01(а)" преобразовать в

strEnd="Е96056146701А"

Буду очень благодарен

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Born



ICQ: 178155071 

Вопросов: 21
Ответов: 52
 Профиль | | #1 Добавлено: 03.12.03 07:14

Я реализовал но мне кажется это не очень граммотно и корректно

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

Ответить

Номер ответа: 2
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #2
Добавлено: 03.12.03 15:09

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

Ответить

Номер ответа: 3
Автор ответа:
 Malyav



ICQ: 8440085 

Вопросов: 15
Ответов: 117
 Web-сайт: malyav.narod.ru
 Профиль | | #3
Добавлено: 03.12.03 16:17

В цикле использовать Mid$. Если символ попадает в ASCII диапазон цифр и букв, оставлять, нет - удалять.

48-57/65-90/97-122

Ответить

Номер ответа: 4
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #4
Добавлено: 04.12.03 05:26

Можно так:

в цикле перебираешь значения и проверяешь условие выборкой

Case "E","0" to "9","A"

 добавляешь в строку

Case Else

не добавляешь

End Case

Ответить

Номер ответа: 5
Автор ответа:
 NeForm@t



ICQ: 252999255 

Вопросов: 36
Ответов: 247
 Web-сайт: g--k.newmail.ru
 Профиль | | #5
Добавлено: 04.12.03 11:55

To CyRax: а нафига там нужен case else и почему ты проверяешь на заглавные, а как видно надо все строчные преобразовать в заглавные

и вообще юзай мою функцию!

Govnuk

Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 05.12.03 06:17

Не буду спорить по такому пустяковому вопросу. А вообще мысль верная

Case Lcase("E"),"0" to "9",Lcase("A")

Советую тебе ув. Говнюк использовать такой стиль написания, если ты хочешь что-бы тот, кто будет читать твой исходник, не помянул тебя неоднократно "незлым" тихим словом.

Ответить

Номер ответа: 7
Автор ответа:
 Born



ICQ: 178155071 

Вопросов: 21
Ответов: 52
 Профиль | | #7 Добавлено: 05.12.03 09:26

Вы как то узко проблему расматриваете, Case'ми запаришься все символы прописывать обозночение может быть какое угодно даже вот такое

strBegin="dhgGFПАЫРРО12.34.23.12.45Комб-дет01.пр(с)"

и что по вашей схеме надо все символы в case загонять? да так опухнуть можно.

Ответить

Номер ответа: 8
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #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-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 09.12.03 16:42

Чего тут спорить?

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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам