Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50

Организовать парольный доступ в программу через INI-файл

26.12.2015, 17:46. Показов 724. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу программу на C++, нужно организовать парольный доступ в программу с возможностью изменить пароль.
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
 if (FileExists(ExtractFilePath(ParamStr(0))+"Pass.ini")==false)
{
ini=new TIniFile(ExtractFilePath(Application->ExeName)+"Pass.ini");
p="123";
ini->WriteString("Pass","Secretpassword",p);
} else
p=ini->ReadString("Pass", "Secretpassword","");
 
if ((MaskEdit1->Text == "") || (MaskEdit1->Text != p))
{
Application->MessageBox("Проверьте ввод пароля!","Предупреждение",MB_OK && MB_ICONWARNING);
MaskEdit1->Clear();
}
else
{
                this->Hide();
                Form2->Show();
}
}
Но дело в том, что когда фала INI нет, то все хорошо, он создается и программа работает. При повторном запуске, когда файл уже есть, то показывает ошибку и в программу нельзя зайти, пока не удалишь файл. Помогите разобраться. Ниже фото ошибки
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2015, 17:46
Ответы с готовыми решениями:

Перенос кода на парольный доступ в новый файл
Всем добрый вечер! Нашёл рабочий файл, в котором сделан вход в базу по логинам и паролям. Проштудировал код, вроде всё понятно(он с...

SSH без парольный доступ
Всем добрый день, Пол дня гуглил так и не на гуглил. Знатоки линукс подскажите как сделать без парольный доступ к ssh серверу с windows...

Локализовать приложение не через dll файл, а через обычный xml или ini файл
Добрый вечер дамы и господа, у меня возникла такой вопросик. Как можно локализовать приложение Windows Forms не через dll файл а через...

10
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50
26.12.2015, 17:48  [ТС]
Ошибка
Миниатюры
Организовать парольный доступ в программу через INI-файл  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
26.12.2015, 18:03
Создавать TIniFile нужно в любом случае:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool b = FileExists(ExtractFilePath(ParamStr(0))+"Pass.ini");
ini=new TIniFile(ExtractFilePath(Application->ExeName)+"Pass.ini");
if(b) p=ini->ReadString("Pass", "Secretpassword","");
else
{
    p = "123";
    ini->WriteString("Pass","Secretpassword",p);
}
 
if ((MaskEdit1->Text == "") || (MaskEdit1->Text != p))
{
    Application->MessageBox("Проверьте ввод пароля!","Предупреждение",MB_OK && MB_ICONWARNING);
    MaskEdit1->Clear();
}
else
{
    this->Hide();
    Form2->Show();
}
А вообще - у меня в подписи есть ссылка на тему, как нужно делать форму авторизации...
1
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50
26.12.2015, 18:25  [ТС]
Спасибо за помощь и за быстрый ответ. Все заработало. Есть еще проблема при попытке изменить пароль. Вот как я пишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm4::BitBtn1Click(TObject *Sender)
{
 p=ini->ReadString("Pass","Secretpassword","");
if ((Edit2->Text==Edit3->Text) && (p==Form4->Edit1->Text))
{ ini->WriteString("Pass", "Secretpassword", Edit2->Text);
ini->Free();
Application->MessageBox("Пароль успешно создан и сохранен!","Создание пароля",MB_OK && MB_ICONINFORMATION);
Edit1->Text = " ";
Edit2->Text = " ";
Edit3->Text = " ";
Form4->Hide();
Form1->Show();
}
else
{
Application->MessageBox("Ошибка! Проверьте правильность ввода данных!","Создание пароля",MB_OK && MB_ICONINFORMATION);
Edit1->Text = " ";
Edit2->Text = " ";
Edit3->Text = " ";
}
}
При попытке сохранить выдает ошибку. помогите, пожалуйста, исправить
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50
28.12.2015, 22:44  [ТС]
ошибку при изменении пароля так и не удалось исправить жду помощи
0
480 / 393 / 113
Регистрация: 24.04.2012
Сообщений: 1,632
Записей в блоге: 3
29.12.2015, 03:52
Цитата Сообщение от Byka Посмотреть сообщение
При попытке сохранить выдает ошибку
телепатией не владеем (ошбику в студию)
А где создаешь new TIniFile? Покажи код формы
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50
29.12.2015, 20:17  [ТС]
код создания TIniFile приведен выше. Файл создается в папке, где лежит весь проект.
Ниже ошибка, которая появляется при попытке изменить пароль
Миниатюры
Организовать парольный доступ в программу через INI-файл  
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
29.12.2015, 22:27
Byka, тут причина наверно в том что ты очищаешь память ini->Free();, а потом опять обращаешься к ней, хотя указателя на объект класса уже не существует.
0
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50
30.12.2015, 07:07  [ТС]
А как надо делать?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
30.12.2015, 09:26
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
TIniFile *ini=new TIniFile(ExtractFilePath(Application->ExeName)+"Pass.ini");
p=ini->ReadString("Pass","Secretpassword","");
if ((Edit2->Text==Edit3->Text) && (p==Form4->Edit1->Text))
{ 
ini->WriteString("Pass", "Secretpassword", Edit2->Text);
Application->MessageBox("Пароль успешно создан и сохранен!","Создание пароля",MB_OK && MB_ICONINFORMATION);
Edit1->Text = " ";
Edit2->Text = " ";
Edit3->Text = " ";
Form4->Hide();
Form1->Show();
}
else
{
Application->MessageBox("Ошибка! Проверьте правильность ввода данных!","Создание пароля",MB_OK && MB_ICONINFORMATION);
Edit1->Text = " ";
Edit2->Text = " ";
Edit3->Text = " ";
}
 
delete ini;
ini = NULL;
1
0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50
03.01.2016, 21:46  [ТС]
спасибо, все работает. Очень помогли, еще раз спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.01.2016, 21:46
Помогаю со студенческими работами здесь

Проверка через ini - файл
Помогите пожалуйста кодом к курсовой, а то скоро сдавать программу человеку и надо реализовать, то что опишу. 1)Необходимо при входе в...

USB Disk Security парольный доступ к USB
Через программу USB Disk Security установлен парольный доступ к USB, а пароль благополучно забыт. Есть ли возможность без переустановки...

Коннект через ini файл с ip сервера
подскажите пожалуйста как можно сделать так чтобы с проектом рядом лежал ini файл с ip (то есть его можно было бы менять) мне просто...

Сохранение StringGrid через SaveDialog в ini-файл
Нид сохранить StringGrid через кнопку в ини(*.ini) файл диалогом SaveDialog!Help!!! Оч нужно! проблема с написанием обработчика для...

Подключиться к БД при загрузке формы через *.ini файл
Здравствуйте! В папке с .ехе файлом программы создал файл Config.ini, прописал в нем: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru