0 / 0 / 0
Регистрация: 19.10.2015
Сообщений: 50

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

26.12.2015, 17:46. Показов 737. Ответов 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
33379 / 21503 / 8236
Регистрация: 22.10.2011
Сообщений: 36,899
Записей в блоге: 12
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru