Страница: 1 |
Страница: 1 |
Вопрос: Как сменить регистр?
Добавлено: 02.04.05 00:52
Автор вопроса: IVA
Как в переменной типа String, сменить маленькие буквы на прописные, и наоборот. (VisualBasic).
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 02.04.05 02:38
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-сайт:
Профиль | | #2
Добавлено: 03.04.05 12:54
Ucase$ - верхний регистр;
LCase$ - нижний.
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #7
Добавлено: 06.04.05 15:54
VladeD,
Весёлый ты парень
Номер ответа: 8
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #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-сайт:
Профиль | | #13
Добавлено: 07.04.05 10:43
Ну дык а я тебе привожу пример где тот способ как "ты умеешь" несработает ) И спрашиваю, что делать в этом случае )
Номер ответа: 14
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #14
Добавлено: 07.04.05 11:02
многоуважаемый CyRax и не так постил
Да, не менее уважаемый sne флудит в основном культурно. И не придерёшься
Номер ответа: 15
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #15
Добавлено: 07.04.05 11:42
Лан, признаю, бывало Но культурно )