Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 17:50   #11
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Спасибо за подсказку NeshSoft... Проблема стоит в том, что при загрузки файла чтение производится только первой строки. Чему она равна, то значение он и присваивает переменной "pass", хотя по коду программы "pass" равен второй строке ( в случае если пользователей несколько 4,6,8... строке)
{Test.org:
Login
Password
Login
Password
............
}
Как должен выглядить код, чтоб исправить эту ошибку!??!
TaYgA вне форума Ответить с цитированием
Старый 29.09.2009, 18:29   #12
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

правильно, строчка, которая первая в файле - та и считывается...
смысл такой:
Код:
// пример файл Test.org:
//Login1
//Password1
//Login2
//Password2

AssignFile(myFile, 'Test.org');
Reset(myFile);

ReadLn(myFile, log1);//считается Login1
ReadLn(myFile, pass1);//считается Password1
ReadLn(myFile, log2);//считается Login2
ReadLn(myFile, pass2);//считается Password2
Т.е. если пользователей несколько, то нужно сначала дойти до считывания логина текущего пользователя из файла, а затем сверить пароль. Попробуйте, покажете, что получилось.
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 30.09.2009, 00:00   #13
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Этот способ работает... Вот что получается:
Код:
procedure TPasswordDlg.OnCloseQuery(Sender: TObject; var CanClose: Boolean);
  Var myFile: TextFile;
      pass1,log1,pass2,log2: String;
begin
  AssignFile(myFile, extractfilepath(paramstr(0))+'test. org');
  Reset(myFile);
  ReadLn(myFile,log1);
  ReadLn(myFile, pass1);
  ReadLn(myFile,log2);
  ReadLn(myFile, pass2);
    if (Edit1.Text = log1) and (lowerCase(Password.Text) = pass1)
      then anClose:=true
    else
begin
  if (Edit1.Text = log2) and (lowerCase(Password.Text) = pass2)
    then CanClose:=true
  else Application.Terminate;
end;
CloseFile(myFile);
end;
В этом случае возникают другие проблемы... Пользователей может быть столько, сколько запесей в файле изначально т. е. файл с записями должен уже существовать и быть заполнен, необходимость формы "регестрация" отпадает т. к. log3 и pass3 проверяться уже не будет... А если в проверке логина и пароля сразу прописать проверку log3,pass3 и т. д. ( не создавая при этом запесей в файле {в файле две записи log1,log2,pass1,pass2}), то программа не запускается ссылаясь на процедуру кнопка "регестрация". К тому же в этом случае будет ограниченное колличество пользователей, а не n-ое количестов!!!
TaYgA вне форума Ответить с цитированием
Старый 30.09.2009, 14:17   #14
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

Я Вам пытался объяснить каким образом считываются строчки из текстового файла.
Для того чтобы, было множество пользователей необходимо использовать динамические массивы. Можно создать два таких массива log и pass; можно один - двумерный с двумя строчками на логин и пароль; можно один массив, и в качестве типа данных указать ту структуру, что я приводил в самом начале. Вобщем вариантов масса...

Кроме того необязательно сразу считывать весь файл, можно считывать в цикле, т.е. считали 2 строки (логин и пароль), проверили, если не совпало с тем, что ввел пользователь - считали еще две строки... Вобщем вариантов уже 2*масса...
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 30.09.2009, 20:02   #15
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Я в Delphi новичёк плюс ещё и самоучка, и не совсем понимаю как это реалезовать... Приведите пример пожалуйсто!
TaYgA вне форума Ответить с цитированием
Старый 30.09.2009, 21:30   #16
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

Цитата:
Сообщение от TaYgA Посмотреть сообщение
Я в Delphi новичёк плюс ещё и самоучка, и не совсем понимаю как это реалезовать... Приведите пример пожалуйсто!
пользуйтесь
Код:
procedure TPasswordDlg.OnCloseQuery(Sender: TObject; var CanClose: Boolean);
  Var myFile: TextFile;
      pass,log,: String;
begin
  CanClose:=false;//пока запрещаем закрытие
  AssignFile(myFile, extractfilepath(paramstr(0))+'test. org');
  Reset(myFile);
  while not Eof(myFile) do //цикл будет до тех пор, пока не достигнем конца файла
      begin
      ReadLn(myFile,log);
      ReadLn(myFile, pass);
      if (Edit1.Text = log) and (lowerCase(Password.Text) = pass)
          then begin 
                 CanClose:=true;
                 breake; //прерываем цикл
                 end;
      end;

CloseFile(myFile);
if not CanClose then Application.Terminate;
end;
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 30.09.2009, 22:52   #17
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

NeshSoft, большое спасибо за помощь!!!! Очень признателен
TaYgA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие и закрытие форм (Delphi) Middle.Cry Помощь студентам 2 13.03.2009 20:18
Ключ. Защита программы. Delphi Kukkk Безопасность, Шифрование 20 11.12.2007 18:05
Защита паролем GAGARIN-NEW Общие вопросы Delphi 46 15.10.2007 13:20
Защита формы паролем Илюха Общие вопросы Delphi 7 29.09.2007 20:53