Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.04.2009, 22:18   #1
street-walker
Форумчанин
 
Регистрация: 20.04.2009
Адрес: Россия,Ростов-на-дону
Сообщений: 65
Репутация: 10
По умолчанию регистрация(авторизация)

необходимо написать регистрацию для входа в программу,при регистрации пользователь вводит свой логин и пароль,которые записываются в текстовый файл,а при в ходе в программу файл должен проверятся на введенные логин и пороль.Вот мой код,подскажите пожалуйста что не так в проверке файла на наличие пользователя:

Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
   
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var
f: textfile;
 log:string;
 pas:string;
 person:string;
procedure TForm1.Button1Click(Sender: TObject);
begin

log:=Edit1.Text;
pas:=Edit2.Text;
AssignFile(f,'E:\Persons.txt');
  if  fileexists('E:\Persons.txt') then begin
  append(f);
  WriteLn(f,log+' '+pas);
  closefile(f);
  end
  else begin
Rewrite(f); //создание файла, если он там есть, то перезаписываеться (старый удаляеться, новый пустой появляеться)
 //Reset(f); //просто открываем файл для редактирования
 WriteLn(f,log,'',pas); //записываем строку в файл с переводом курсора на новую строку
 CloseFile(f); //закрываем файл

 end;

end;



procedure TForm1.Button2Click(Sender: TObject);
begin
log:=Edit1.Text;
pas:=Edit2.Text;
AssignFile(f,'E:\Persons.txt');
reset(f);
while not eof(f) do
begin
readln(f,person);
if person=(log+' '+pas) then
showmessage('есть такой пользователь')
else
showmessage('нет такого пользователя')
closefile(f);
end;
end;
end.

Последний раз редактировалось KORN; 21.04.2009 в 04:59. Причина: пользуемся тегами [code][/code]
street-walker вне форума   Ответить с цитированием
Старый 20.04.2009, 22:59   #2
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Адрес: Башкортостан Учалы
Сообщений: 337
Репутация: 64

icq: 422021255
По умолчанию

Какую ошибку выдаёт программа?

Оформляйте код тэгом CODE (#)
__________________
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума   Ответить с цитированием
Старый 20.04.2009, 23:11   #3
street-walker
Форумчанин
 
Регистрация: 20.04.2009
Адрес: Россия,Ростов-на-дону
Сообщений: 65
Репутация: 10
По умолчанию

в любом случае выводится сообщение "нет такого пользователя"
street-walker вне форума   Ответить с цитированием
Старый 20.04.2009, 23:23   #4
spamer
Software Developer
Профессионал
 
Аватар для spamer
 
Регистрация: 19.12.2008
Адрес: Ukraine, Kremenchug
Сообщений: 2,074
Репутация: 1142

skype: denis.piskunov.ua
По умолчанию

При регистрации пользователя, просто записуйте в файл Логин и Пас. При в ходе в программу считывайте эти же данные из файла и проверяйте с теми что ввел пользователь.

P.S. Я бы лучше использовал ini файлы.
__________________
Будь проще и люди к тебе потянутся
spamer вне форума   Ответить с цитированием
Старый 20.04.2009, 23:30   #5
street-walker
Форумчанин
 
Регистрация: 20.04.2009
Адрес: Россия,Ростов-на-дону
Сообщений: 65
Репутация: 10
По умолчанию

Я в общем-то так и делаю,но при проверке введенных данных пользователем с теми что имеютя в файлене находит,Даже если они там есть
street-walker вне форума   Ответить с цитированием
Старый 20.04.2009, 23:41   #6
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Адрес: Башкортостан Учалы
Сообщений: 337
Репутация: 64

icq: 422021255
По умолчанию

Код:
if person=(log+' '+pas) then begin
showmessage('есть такой пользователь')
exit
end
else begin
showmessage('нет такого пользователя')
exit
end
closefile(f);
попробуйте так
__________________
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума   Ответить с цитированием
Старый 20.04.2009, 23:49   #7
street-walker
Форумчанин
 
Регистрация: 20.04.2009
Адрес: Россия,Ростов-на-дону
Сообщений: 65
Репутация: 10
По умолчанию

все равно,при любом вводе логина и пароля,правильного или неправильного выводится сообщение 'нет такого пользователя'
street-walker вне форума   Ответить с цитированием
Старый 20.04.2009, 23:51   #8
street-walker
Форумчанин
 
Регистрация: 20.04.2009
Адрес: Россия,Ростов-на-дону
Сообщений: 65
Репутация: 10
По умолчанию

ошибка I/O 104
street-walker вне форума   Ответить с цитированием
Старый 21.04.2009, 00:04   #9
Лукманов Александр
работа не волк....
Форумчанин
 
Аватар для Лукманов Александр
 
Регистрация: 09.06.2008
Адрес: Башкортостан Учалы
Сообщений: 337
Репутация: 64

icq: 422021255
По умолчанию

Код:
log:=Edit1.Text;
pas:=Edit2.Text;
AssignFile(f,'E:\Persons.txt');
if fileexists('E:\Persons.txt') then begin
reset(f);
append(f);
WriteLn(f,log+' '+pas);
closefile(f);
end
__________________
Цель, для которой требуются неправые средства, не есть неправая цель.
Лукманов Александр вне форума   Ответить с цитированием
Старый 21.04.2009, 00:05   #10
Хитрец
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 48
Репутация: 10
По умолчанию

Чисто из жалости от такого убогого кода исправил твои ошибки извини за прямоту, но так не пишут программы

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

log:=Edit1.Text;
pas:=Edit2.Text;

AssignFile(f,'c:\Persons.txt');
if fileexists('c:\Persons.txt') then
  begin
  append(f);
  WriteLn(f,log+' '+pas);
  closefile(f);
  end
else
  begin
  Rewrite(f); //создание файла, если он там есть, то перезаписываеться (старый удаляеться, новый пустой появляеться)
  //Reset(f); //просто открываем файл для редактирования
  WriteLn(f,log+' '+pas); //записываем строку в файл с переводом курсора на новую строку
  CloseFile(f); //закрываем файл
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
Var Result :boolean;
begin
log:=Edit1.Text;
pas:=Edit2.Text;
Result := false;
AssignFile(f,'c:\Persons.txt');
reset(f);
while not eof(f) do
  begin
  readln(f,person);
  if person=(log+' '+pas) then
    begin
    result := true;
    showmessage('Есть такой пользователь');
    exit;
    end
  end;
  if Result = false then showmessage('Нет такого пользователя');
  closefile(f);
end;
Скопируй все и вставь, то у тебя там ошибки с пробелами! Да и диск C на Е измени обратно, то я переставил для себя.

Последний раз редактировалось KORN; 21.04.2009 в 04:59.
Хитрец вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регистрация классов. Nytlec Помощь студентам 1 18.01.2009 15:05
Регистрация limon PHP 1 17.10.2008 10:33
Регистрация БД Gladiator БД в Delphi 1 05.06.2008 00:09
Регистрация и авторизация zorro Общие вопросы Delphi 10 09.04.2007 01:14


11:32.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.