{ JL>Help me guys. I'm learning about reading from a File. I am creating a
 JL>Program that will let you set passWord and test a passWord.

 JL>Also how do you make the screen print a Character like .... instead of a
 JL>Word.  So when you enter in a passWord like in BBS it won't show it?

------------------------------------X----------------------------------------
}

Program TestPW;

{
Programmer      : Chet Kress (FidoNet 1:283/120.4)
Been Tested?    : YES, this has been tested.  It works!
original Date   : 01/01/93
Current Version : v1.0
Language        : Turbo Pascal v7.0
Purpose         : Make a passWord routine
}

Uses Crt;

Procedure TestPassWord;

Const
  DataFile = 'PW.DAT'; {The name of the data File containing the passWord}
  {Just have one line in the PW.DAT File, and use that as the passWord}

Var
  PassWordFile : Text; {The name assigned to the data File}
  PassCH : Char; {A Character that the user has entered}
  TempPassWord : String; {The temporary passWord from the user}
  ThePW : String; {The Real passWord from the data File}

begin {TestPassWord}
  Assign (PassWordFile, DataFile);
  Reset (PassWordFile);
  ClrScr;
  TempPassWord := '';
  Write ('Enter passWord: ');
{
  I replaced the Readln With this Repeat..Until loop so you can see the
  "periods" instead of the Characters (like you wanted).  This is a simple
  routine, but it should suffice For what you want it to do.  It has some
  error checking and backspacing is available too.
}
  Repeat
    PassCH :=  ReadKey;
    if (PassCH = #8) and (Length(TempPassWord) > 0) then
      begin
        Delete (TempPassWord, Length(TempPassWord), 1);
        GotoXY (WhereX-1, WhereY);
        Write (' ');
        GotoXY (WhereX-1, WhereY);
      end;
    if (PassCH >= #32) and (PassCH <= #255) then
      begin
        TempPassWord := TempPassWord + PassCH;
        Write ('.');
      end;
  Until (PassCH = #13);
  Writeln;
  Readln (PassWordFile, ThePW);        { <-- You Forgot to add this line }
  if TempPassWord = ThePW then
    begin
      Writeln ('You have received access.');
      Writeln ('Loading Program.');
      { Do whatever else you want to here }
    end
  else
    begin
      Writeln ('Wrong PassWord.');
    end;
  Close (PassWordFile);
end; {TestPassWord}

begin {Main}
  TestPassWord;
end. {Main}

