Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> isWhiteSpace + isLetter на variable 
V
    Опции темы
Spiker
Дата 27.4.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



Код
Function GetNewPhrase() As String
Dim PhraseOK As Boolean
Dim ThisNewPhrase As String
Do
    ThisNewPhrase = InputBox("Key in new phrase ...(letters and any Spaces)")
        If Len(ThisNewPhrase) < 10 Then
            PhraseOK = False
            MsgBox ("Not enough letters ... ")
        ElseIf Char.IsLetter(Val(ThisNewPhrase)) Or Char.IsWhiteSpace(Val(ThisNewPhrase)) Then
            PhraseOK = True
            GetNewPhrase = UCase(ThisNewPhrase)
        Else
            MsgBox("Only letters and spaces")
        End If
Loop Until PhraseOK = True
End Function


Char.IsLetter u Char.IsWhiteSpace не работают на variable, если другой метод исполнения данной функций?

Это сообщение отредактировал(а) diadiavova - 27.4.2009, 13:46


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Akina
Дата 27.4.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



1) Задавая вопрос, следует смотреть, где, в каком разделе, его размещать.
2) Создавая код, следует смотреть, какой тип желает принимать функция.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 27.4.2009, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Перемещено в VB .NET.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Spiker
Дата 27.4.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



идея воспроизвести этот код в VB6 


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
diadiavova
Дата 27.4.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: нет
Всего: 142



Цитата(Spiker @  27.4.2009,  13:07 Найти цитируемый пост)
Char.IsLetter u Char.IsWhiteSpace не работают на variable, если другой метод исполнения данной функций? 

Не понял smile 

По коду: а где гарантия, что в инпутбокс введено число?


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Spiker
Дата 27.4.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



если я правильно вас понял..

Код

If Len(ThisNewPhrase) < 10 Then
            PhraseOK = False
            MsgBox ("Not enough letters ... ")

вначале идет проверка Inputbox'a
если меньше 10 букв сразу-же аборт
 после проверка на то что находитса в Inputbox'e

Код

ElseIf Char.IsLetter(Val(ThisNewPhrase)) Or Char.IsWhiteSpace(Val(ThisNewPhrase)) Then
            PhraseOK = True
            GetNewPhrase = UCase(ThisNewPhrase)




Пользователь вводит слово -> Проверка 
                       Минимум 10 букв(цифр) если все правильно -> проверка текста 
                                           Допустимо только буквы и пробел -> Да?
                                                                                                    Меняем все на большие буквы, ставим статус все ок.



Это сообщение отредактировал(а) Spiker - 27.4.2009, 13:55


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
diadiavova
Дата 27.4.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: нет
Всего: 142



Да, но функции Val должна передаваться строка, содержащая число. Если это не так, то отсюда, видимо, и ошибка. Хотя, честно говоря смысл выражения
Цитата

Char.IsLetter(Val(ThisNewPhrase)) Or Char.IsWhiteSpace(Val(ThisNewPhrase)) 

мне, лично непонятен в принципе. Функция Val, возвращает число, IsLetter иIsWhitespace принимают символ. По идее компилятор должен ругаться. Опять-таки не понятно, что за язык VB6 или VB.Net, и в любом случае не понятно почему используется разметка PHP. Кроме того: вопрос из первого поста требует разъяснения.

Это сообщение отредактировал(а) diadiavova - 27.4.2009, 14:08


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Spiker
Дата 27.4.2009, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



Допущена ошибка, думаю как исправить. Пишет что  "Object required" и я попробовал без "Val" се-ровно ошибка
 код VB6


Run-time error '424'

Это сообщение отредактировал(а) Spiker - 27.4.2009, 14:16


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
diadiavova
Дата 27.4.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: нет
Всего: 142



Собственно, идея понятна. Проверку текста на соответствие шаблону надо выполнять при помощи регулярных выражений. В данном случае оно будет выглядеть примерно так
Код

[\w\s]{10,}

Если не ошибаюсь ессно. Кроме всего прочего в коде жуткие грабли, из цикла аж два раза вызываются модальные окна, при чём прекратить процесс можно только введя правилный текст. Попадётся тупой пользователь(вроде меня), который сразу не поймёт, что от него хотят, он просто не сможет закрыть окна. Это плохо. Диалоговое окно лучше сделать своё и проверять корректность ввода в нём, с возможностью отмены операции.

Добавлено через 2 минуты
Работу с регулярными выражениями в VB6 я не знаю, придётся переместить тему туда smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Spiker
Дата 27.4.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



можно по подробней как "[\w\s]{10,}" применять?


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
diadiavova
Дата 27.4.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: нет
Всего: 142



Это регулярное выражение. Я уже написал, что не знаю как с ними работать в VB6. В VB.Net для этого свои инструменты, да возможно, что в VB6 и синтаксис регекспов отличается. Тему я переместил в соответствующий форум, так что скоро ответят(наверно smile )


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Spiker
Дата 27.4.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



спасибо


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Akina
Дата 27.4.2009, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Значит, всё-таки на VB6 надо реализовать... тогда забываем про фенечки от фреймворков и нормально описываем задачу. Словами.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Spiker
Дата 27.4.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: нет
Всего: -2



пользователь вводит слово или фразу которая должна быть минимум 10 символов которые включать в себя большие буквы с алфавита и "пробел". Пользователь может ввести максимум 20 симвалов. Слово не должно включать в-себя не какие другие символы кроме больших букв и "пробела"

 У мена нет еще "VBScript Regular Expressions"

Это сообщение отредактировал(а) Spiker - 27.4.2009, 15:08


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Akina
Дата 27.4.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Вариантов реализации - масса.
Можно написать собственную проверяющую функцию (даже лучше две - первая проверяет один символ, вторая с помощью первой всю строку посимвольно). 
Можно добавить референс на Microsoft Scripting Runtime и использовать его Match.
Можно придумать ещё кучу вариантов.

PS. Формально можно и референс на фреймворк сделать - но это кривое решение, потому как даже изменение билда (не говоря уж о версии) будет приводить к ошибкам.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0875 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.