Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как создать пароль?


Автор: Klin 29.10.2002, 08:45
Как создать пароль, чтобы он воспринемал чилсла я знаю, а буквы нет.
Может, кто подскажет?



P.S. Если я не ясно написал скажите мне, я уточню.

Автор: Baa 29.10.2002, 11:10
Че-то ты хитрое задумал...
Пароль воспринимал числа... звучит, как будто ты переборщик паролей пишешь... хотя скорее всего это просто генератор случайных паролей... но так или иначе, я не телепат... если хочешь получить ответ, то тебе следует уточнить свой вопрос...

Автор: Klin 30.10.2002, 01:27
Ха-ха!
Нет, я делаю демо-версию проги.
А насчёт уточнить, пожалуйста:
у меня есть поле Memo и кнопка Button и Timer.
Button1->Enabled=false;
false меняется true, если в мемо написать "Код".
Ну, а код кнопки не нужен...мне нужно, чтобы можно было ввести пароль.



P.S. Ещё точнее?

Автор: Baa 30.10.2002, 05:32
Угу.... еще больше запутал...

Автор: HexoGenus 13.11.2002, 21:21
Цитата(Klin @ 29.10.2002, 17:27)
Ха-ха!
Нет, я делаю демо-версию проги.
А насчёт уточнить, пожалуйста:
у меня есть поле Memo и кнопка Button и Timer.
Button1->Enabled=false;
false меняется true, если в мемо написать "Код".
Ну, а код кнопки не нужен...мне нужно, чтобы можно было ввести пароль.
P.S. Ещё точнее?

Мне вроде понятно что ты хочешь ....
Например в программе Nero набираешь свой пароль и пока не наберешь правильный (к примеру hjg6765hhjjkgf56) не загорается кнопка ОК в результате если пользователь допустил опечатку он не сможет продолжить...
Одного не пойму!!!! Почему Memo а не Edit !!!! у тебя пароль что многострочный ???
Если да то тебе мой код прийдется додумывать, а если просто хочется что бы было мемо (а просто так для фишки) то пожалуйста такой вариант:
В событии OnChange своего мемо прописываешь
void __fastcall TForm1::Memo1Change(TObject *Sender)
{
String strPassword="пароль";
bool bDostup=false;
for (int i=0; i<Memo1->Lines->Count; i++)
 {
  if (Memo1->Lines->Strings[i].Pos(strPassword)>0) bDostup=true;
 }
Button1->Enabled=bDostup;
}

И все  :D

Автор: Klin 22.11.2002, 02:53
Спасибо!
Ты правильно угадал!
Пишим в мемо, лишь потому, есть элемнт стрингс или лайнес!
Понял?

P.S.
Код

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
Memo1->Text=Edit1->Text;
}


Автор: Klin 6.12.2002, 17:26
HexoGenus это получается, что если напишишь "пароль", то
Button1->Enabled=true, но если напишишь "у меня есть пароль", то тоже самое произойдёт!
Как от этого избавиться?

Автор: Baa 6.12.2002, 17:39
Дык сравнивай строку целиком, а не ищи в ней это слово... убери Pos и сделай нормальное сравнение...

Автор: Klin 6.12.2002, 17:54
Спасибо!
Попробую.

Автор: Klin 8.12.2002, 05:16
Идёт!
А как несколько значений сделать знаешь?

Автор: Baa 9.12.2002, 21:34
Эээ...слушай... выражайся яснее... каких значений? куда сделать?

Автор: Klin 9.12.2002, 21:49
Извени, выражаюсь ясней:
Такие как: парол, пароль-2, пароль-3 и т.п.

Автор: Dagger 13.12.2002, 08:00
Че-то типа такой функции введи и вызывай ее себе сколько
угодно;). *TEXT - аргумент с введенным паролем.
pass - строковой массив с паролями...

bool check(char *TEXT)
char pass[][100]={{"faljl32j5jfopsja"},{"fjajl;jr324797fa"},...};

for(int i=0;i<sizeof(pass)/sizeof(pass[0]);i++){
 if(strcmp(TEXT,pass[i])==0)return true;
}

return false;

}

Автор: Klin 14.12.2002, 02:55
А гдэ Мэмо?

Автор: Dagger 14.12.2002, 06:16
Цитата(Klin @ 13.12.2002, 18:55)
А гдэ Мэмо?

Работает вот таким образом: вызываешь в нужном тебе контексте эту функцию: что-то типа,
if(check(Memo1->Text)){do_somethink;}
else {...}

Автор: Klin 14.12.2002, 08:39
А, понял!

Автор: Klin 16.12.2002, 17:58
Код
String strPassword="пароль";
String strPassword2="пароль-2";
bool bDostup=false;
for (int i=0; i<Memo1->Lines->Count; i++)
{
 if (Memo1->Lines->Strings[i].Pos(strPassword)>0) bDostup=true;
 if (Memo1->Lines->Strings[i].Pos(strPassword2)>0) bDostup=true;
}
Button1->Enabled=bDostup;

:D

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)