Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проверка на правильность заполнения поля ввода... / 13 сообщений из 13, страница 1 из 1
01.02.2005, 16:54
    #32895250
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
По нажатию на батон должна происходить проверка поля ввода на предмет отсутствия любых символов кроме букв и цифр... не подскажете как это сделать?

Мой вариант:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
int func_isalnum(int text)
    {
     int a = isalnum(text);
     if (a ==  0 )
     {
      return  0 ;
     }
     else
     {
      return  1 ;
     }
}

Хотя я в нем жуутко сомневаюсь... т.к. все время возвращает 0...
...
Рейтинг: 0 / 0
01.02.2005, 16:57
    #32895261
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Забыл сообщить...
Компилятор ВС++6
...
Рейтинг: 0 / 0
01.02.2005, 17:30
    #32895353
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Код: plaintext
1.
2.
3.
4.
5.
int func_isalnum(int text)
{
     return isalnum((char)text);
}

...
Рейтинг: 0 / 0
01.02.2005, 17:38
    #32895387
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
и еще один вопрос: как из AnsiString получить Char? (для передачи в функцию)
...
Рейтинг: 0 / 0
01.02.2005, 17:44
    #32895404
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Я пытаюсь так:

Код: plaintext
1.
2.
char *a1 = new char[Edit1->Text.Length()];
strcpy(a1,Edit2->Text.c_str());

но результат функции всегда = 0...
...
Рейтинг: 0 / 0
01.02.2005, 17:50
    #32895426
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Очепятка: Вместо Edit2 должно быть Edit1!

И вот еще чего я не понял... на симвлы \ и , проверка проходит, а на все осальное - нет...
...
Рейтинг: 0 / 0
01.02.2005, 17:52
    #32895434
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Sr. MelifaroЯ пытаюсь так:

Код: plaintext
1.
2.
char *a1 = new char[Edit1->Text.Length()];
strcpy(a1,Edit2->Text.c_str());

но результат функции всегда = 0...

Код: plaintext
1.
2.
char *a1 = new char[Edit1->Text.Length() +  1 ];
strcpy(a1,Edit1->Text.c_str());
...
Рейтинг: 0 / 0
01.02.2005, 18:01
    #32895459
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
поправил, но тогда вообще ничего не пойму... код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
int func_isalnum(int text)
{
     return isalnum((char)text);
}

char *a1 = new char[Edit1->Text.Length() +  1 ];
strcpy(a1,Edit1->Text.c_str());

if (func_isalnum(a1) ==  0 )
 {
   StatusBar->SimpleText = "Ошибка!";
 }
else
 {
   StatusBar->SimpleText = "Все ок!";
 }
В чем же проблема?
...
Рейтинг: 0 / 0
01.02.2005, 18:09
    #32895488
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Кстати таже проблема и с функцией isdigit()...
...
Рейтинг: 0 / 0
01.02.2005, 18:11
    #32895494
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Sr. Melifaroпоправил, но тогда вообще ничего не пойму... код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
int func_isalnum(int text)
{
     return isalnum((char)text);
}

char *a1 = new char[Edit1->Text.Length() +  1 ];
strcpy(a1,Edit1->Text.c_str());

if (func_isalnum(a1) ==  0 )
 {
   StatusBar->SimpleText = "Ошибка!";
 }
else
 {
   StatusBar->SimpleText = "Все ок!";
 }
В чем же проблема?

Ха-Ха. Ваша функция func_isalnum принимает на обработку 1 символ!!!

А вы ей запихали указательна строку.
Вариант (может заработает)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
int func_isalnum(const char * text)
{
     int nfound =  1 ;
     while(*text && nfound)
      y = isalnum(*(text++));
     return nfound;
}

if (func_isalnum(Edit1->Text) ==  0 )
 {
   StatusBar->SimpleText = "Ошибка!";
 }
else
 {
   StatusBar->SimpleText = "Все ок!";
 }


...
Рейтинг: 0 / 0
01.02.2005, 18:30
    #32895562
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Вас не затруднит объяснит ваш вариант посторчно... Больше всего не понял вот это:
Код: plaintext
1.
int y = isalnum(*(text++));
...
Рейтинг: 0 / 0
01.02.2005, 18:54
    #32895618
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Sr. MelifaroВас не затруднит объяснит ваш вариант посторчно... Больше всего не понял вот это:
Код: plaintext
1.
int y = isalnum(*(text++));


Тьфу, ошибся не y, а nfound
...
Рейтинг: 0 / 0
02.02.2005, 11:05
    #32896426
Sr. Melifaro
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на правильность заполнения поля ввода...
Вот теперть все ясно! :) Благодарю!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проверка на правильность заполнения поля ввода... / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]