Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > isWhiteSpace + isLetter на variable |
Автор: Spiker 27.4.2009, 13:07 | ||
Char.IsLetter u Char.IsWhiteSpace не работают на variable, если другой метод исполнения данной функций? |
Автор: Akina 27.4.2009, 13:14 |
1) Задавая вопрос, следует смотреть, где, в каком разделе, его размещать. 2) Создавая код, следует смотреть, какой тип желает принимать функция. |
Автор: Akina 27.4.2009, 13:15 |
Перемещено в VB .NET. |
Автор: Spiker 27.4.2009, 13:41 |
идея воспроизвести этот код в VB6 |
Автор: Spiker 27.4.2009, 13:49 | ||||
если я правильно вас понял..
вначале идет проверка Inputbox'a если меньше 10 букв сразу-же аборт после проверка на то что находитса в Inputbox'e
Пользователь вводит слово -> Проверка Минимум 10 букв(цифр) если все правильно -> проверка текста Допустимо только буквы и пробел -> Да? Меняем все на большие буквы, ставим статус все ок. |
Автор: diadiavova 27.4.2009, 14:00 | ||
Да, но функции Val должна передаваться строка, содержащая число. Если это не так, то отсюда, видимо, и ошибка. Хотя, честно говоря смысл выражения
мне, лично непонятен в принципе. Функция Val, возвращает число, IsLetter иIsWhitespace принимают символ. По идее компилятор должен ругаться. Опять-таки не понятно, что за язык VB6 или VB.Net, и в любом случае не понятно почему используется разметка PHP. Кроме того: вопрос из первого поста требует разъяснения. |
Автор: Spiker 27.4.2009, 14:15 |
Допущена ошибка, думаю как исправить. Пишет что "Object required" и я попробовал без "Val" се-ровно ошибка код VB6 Run-time error '424' |
Автор: diadiavova 27.4.2009, 14:18 | ||
Собственно, идея понятна. Проверку текста на соответствие шаблону надо выполнять при помощи регулярных выражений. В данном случае оно будет выглядеть примерно так
Если не ошибаюсь ессно. Кроме всего прочего в коде жуткие грабли, из цикла аж два раза вызываются модальные окна, при чём прекратить процесс можно только введя правилный текст. Попадётся тупой пользователь(вроде меня), который сразу не поймёт, что от него хотят, он просто не сможет закрыть окна. Это плохо. Диалоговое окно лучше сделать своё и проверять корректность ввода в нём, с возможностью отмены операции. Добавлено через 2 минуты Работу с регулярными выражениями в VB6 я не знаю, придётся переместить тему туда ![]() |
Автор: Spiker 27.4.2009, 14:22 |
можно по подробней как "[\w\s]{10,}" применять? |
Автор: diadiavova 27.4.2009, 14:32 |
Это регулярное выражение. Я уже написал, что не знаю как с ними работать в VB6. В VB.Net для этого свои инструменты, да возможно, что в VB6 и синтаксис регекспов отличается. Тему я переместил в соответствующий форум, так что скоро ответят(наверно ![]() |
Автор: Spiker 27.4.2009, 14:35 |
спасибо |
Автор: Akina 27.4.2009, 15:01 |
Значит, всё-таки на VB6 надо реализовать... тогда забываем про фенечки от фреймворков и нормально описываем задачу. Словами. |
Автор: Spiker 27.4.2009, 15:03 |
пользователь вводит слово или фразу которая должна быть минимум 10 символов которые включать в себя большие буквы с алфавита и "пробел". Пользователь может ввести максимум 20 симвалов. Слово не должно включать в-себя не какие другие символы кроме больших букв и "пробела" У мена нет еще "VBScript Regular Expressions" |
Автор: Akina 27.4.2009, 15:09 |
Вариантов реализации - масса. Можно написать собственную проверяющую функцию (даже лучше две - первая проверяет один символ, вторая с помощью первой всю строку посимвольно). Можно добавить референс на Microsoft Scripting Runtime и использовать его Match. Можно придумать ещё кучу вариантов. PS. Формально можно и референс на фреймворк сделать - но это кривое решение, потому как даже изменение билда (не говоря уж о версии) будет приводить к ошибкам. |
Автор: Spiker 27.4.2009, 15:18 |
я думал можно использовать проварку наподобие [A-Z ]{10,20} как в PHP Добавлено через 1 минуту и 4 секунды видимо функция мое лучшее решение Добавлено через 11 минут и 19 секунд как начать? |
Автор: Akina 27.4.2009, 15:55 | ||
Что значит - как начать?
|
Автор: Spiker 27.4.2009, 15:59 |
спасибо =) надо будет запомнить |