Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Как сменить регистр? Добавлено: 02.04.05 00:52  

Автор вопроса:  IVA
Как в переменной типа String, сменить маленькие буквы на прописные, и наоборот. (VisualBasic).

Ответить

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

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #1
Добавлено: 02.04.05 02:38

Option Explicit

Sub Main()
    Dim i           As Long
    Dim inString    As String, _
        btChar      As Byte

    inString = "hELLO wORLD"

    For i = 1& To Len(inString)
        btChar = Asc(Mid$(inString, i, 1))

        Select Case btChar
            Case 65 To 90
                Mid$(inString, i, 1) = Chr$(btChar Or &H20)

            Case 192 To 223
                Mid$(inString, i, 1) = Chr$(btChar Or &H20)

            Case 97 To 122
                Mid$(inString, i, 1) = Chr$(btChar And Not &H20)

            Case 224 To 255
                Mid$(inString, i, 1) = Chr$(btChar And Not &H20)

        End Select
    Next

    MsgBox inString
End Sub

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #2
Добавлено: 03.04.05 12:54
Ucase$ - верхний регистр;
LCase$ - нижний.

Ответить

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 03.04.05 18:48
Ну заместо Chr$(btChar Or &H20) и Chr$(btChar And Not &H20) можно их вставить, но не думаю что оно будет быстрее чем есть так!

Ответить

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



Вопросов: 8
Ответов: 40
 Профиль | | #4 Добавлено: 06.04.05 15:42
Привет, sne - привел интересный вариант ! Он хорош для переключения слов в предложении! Сам по себе интересен.
Но если дать более простой ответ 1-му автору, то нужно использовать ответ и sne и CyRax, что я всегда делал:
- для всего, что будет в скобке, например:
  str = Ucase("hELLO wORLD";)
' т.е., получим сразу str = "HELLO WORLD"
и наоборот:
  str = Lcase("Hello World";)
' будет str = "hello world"
Если делать по каждому слову:
  str =Ucase(nid("hELLO", 1,1)) ? mid("hELLO, 2)
' получим str ="Hello"
и т.д.

Ответить

Номер ответа: 5
Автор ответа:
 VladeD



Вопросов: 8
Ответов: 40
 Профиль | | #5 Добавлено: 06.04.05 15:45
Пардон'с, в конце вкрлась синтаксичесая ошибка. В коде это допускать нельзя!!!!
......
Если делать по каждому слову:
  str =Ucase(mid("hELLO", 1,1)) & mid("hELLO, 2)
' получим str ="Hello"
и т.д.

Ответить

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



Вопросов: 8
Ответов: 40
 Профиль | | #6 Добавлено: 06.04.05 15:47
Ту, блин - нет времени, тороплюсь:
Пардон'с, в конце опять вкралась синтаксичесая ошибка. В коде это допускать нельзя!!!!
......
Если делать по каждому слову:
  str =Ucase(mid("hELLO", 1,1)) & Lcase(mid("hELLO, 2))
' получим str ="Hello"
и т.д.

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #7
Добавлено: 06.04.05 15:54
VladeD,
 Весёлый ты парень ;)

Ответить

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #8
Добавлено: 06.04.05 19:52
А если есть HeLlO WoRlD и нужно получить hElLo wOrLd, ни то ни се не поможет, вопрос был именно в переключении... А не в том чтобы "нормализовать" строку...

Ответить

Номер ответа: 9
Автор ответа:
 Страшный Сон



Вопросов: 46
Ответов: 848
 Профиль | | #9 Добавлено: 06.04.05 21:49
2 VladeD: за такой мультипостинг тебя и забаннить могут.

Ответить

Номер ответа: 10
Автор ответа:
 VladeD



Вопросов: 8
Ответов: 40
 Профиль | | #10 Добавлено: 07.04.05 10:20
Во первых - за что меня "забанить" - я ж стараюсь для всех. Теперь буду молчать хоть и знаю ответ ::))

Во вторых:
>> HeLlO WoRlD и нужно получить hElLo wOrLd ?

' Может и "криво", но я умею делать только так:
Dim str As String
str = LCase(Mid("HeLlO", 1, 1)) & UCase(Mid("HeLlO", 2, 3)) & LCase(Mid("HeLlO", 5, 1))
'здесь - str = "hElLo"

str = str & " " & LCase(Mid("wOrLd", 1, 1)) & UCase(Mid("wOrLd", 2, 1)) & LCase(Mid("wOrLd", 3, 1)) & UCase(Mid("wOrLd", 4, 1)) & LCase(Mid("wOrLd", 5, 1))

' в итоге: str = "hElLo wOrLd"
Проверьте....и больше на сайт носа не покажу

Ответить

Номер ответа: 11
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #11
Добавлено: 07.04.05 10:34
2VladeD, ну да а если строка заранее неизвестна и длинна ее 15000 символов :) ? Что тогда ;) ?

PS
Да ниче, Сон погорячился, многоуважаемый CyRax и не так постил, и ниче, так что все ок :))

Ответить

Номер ответа: 12
Автор ответа:
 VladeD



Вопросов: 8
Ответов: 40
 Профиль | | #12 Добавлено: 07.04.05 10:37
Я написал как я умею, а не как надо!

Ответить

Номер ответа: 13
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #13
Добавлено: 07.04.05 10:43
Ну дык а я тебе привожу пример где тот способ как "ты умеешь" несработает :)) И спрашиваю, что делать в этом случае :))

Ответить

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



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

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #14
Добавлено: 07.04.05 11:02

 многоуважаемый CyRax и не так постил

 Да, не менее уважаемый sne флудит в основном культурно. И не придерёшься ;)

Ответить

Номер ответа: 15
Автор ответа:
 sne



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #15
Добавлено: 07.04.05 11:42
Лан, признаю, бывало :) Но культурно :))

Ответить

Страница: 1 |

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



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