home *** CD-ROM | disk | FTP | other *** search
/ PC Interdit / pc-interdit.iso / motpasse / mtpass3.pas < prev    next >
Pascal/Delphi Source File  |  1994-10-18  |  3KB  |  116 lines

  1. program motdepasse_type3;
  2.  
  3. uses crt,design;
  4.  
  5. Type motdepassetyp = record
  6.        page : byte;
  7.        text  : string[20];
  8.      end;
  9.  
  10. VAR lmots : array[1..10] of motdepassetyp;
  11.     motp    : motdepassetyp;
  12.     motdepasse : string;
  13.     motdepassecheck : boolean;
  14.     mp_Index : byte;
  15.  
  16. procedure liste_saisir;
  17. var li : integer;
  18. begin;
  19.  for li := 1 to 10 do begin;
  20.   save_screen;
  21.   fenetre(10,8,60,9,' Changement de mot de passe ',black,7);
  22.   writexy(13,10,'Veuillez taper le mot de passe n° ');
  23.   write(li,' / 10 de la liste ');
  24.   writexy(13,12,'Page du mot de passe dans le manuel : ');
  25.   readln(lmots[li].page);
  26.   writexy(13,14,'Mot de passe : ');
  27.   readln(lmots[li].text);
  28.   restore_screen;
  29.   textcolor(7);
  30.   textbackground(black);
  31.  end;
  32. end;
  33.  
  34. Procedure liste_enregistrer;
  35. var fmp : file;
  36. begin;
  37.   assign(fmp,'Passtyp3.dat');
  38.   rewrite(fmp,10*sizeof(motdepassetyp));
  39.   blockwrite(fmp,lmots,1);
  40.   close(fmp);
  41. end;
  42.  
  43. procedure motdepasse_charger(Idx : byte);
  44. var fmp : file;
  45. begin;
  46.   assign(fmp,'Passtyp3.dat');
  47.   reset(fmp,1);
  48.   seek(fmp,Idx*sizeof(motdepassetyp));
  49.   blockread(fmp,motp,sizeof(motdepassetyp));
  50.   close(fmp);
  51.   save_screen;
  52.   fenetre(10,8,50,7,'',black,7);
  53.   writexy(12,10,'Veuillez saisir le mot de passe de la page ');
  54.   write(motp.page);
  55.   writexy(12,12,'mot de passe : ');
  56.   readln(motdepasse);
  57.   restore_screen;
  58. end;
  59.  
  60. procedure motdepasse_controler;
  61. begin;
  62.   if motdepasse = motp.text then
  63.     motdepassecheck := true
  64.   else
  65.     motdepassecheck := false;
  66. end;
  67.  
  68. procedure motdepasse_reagir;
  69. begin;
  70.   save_screen;
  71.   fenetre(10,8,48,7,'',black,7);
  72.   If motdepassecheck then begin;
  73.     writexy(13,11,'Mot de passe correct - Accès autorisé ');
  74.   end else begin;
  75.     writexy(13,11,'Mot de passe ERRONE ! - Accès interdit !');
  76.   end;
  77.   repeat until keypressed; readkey;
  78.   restore_screen;
  79.   textcolor(7);
  80.   textbackground(black);
  81. end;
  82.  
  83. procedure menu;
  84. var choix : byte;
  85. begin;
  86.   repeat
  87.     clrscr;
  88.     writexy(10,1,'Exemple de programme pour mot de passe de type 3');
  89.     writexy(18,3,'(c) ''94 par MICRO APPLICATION ');
  90.     writexy(24,6,'M E N U');
  91.     writexy(24,7,'~~~~~~~');
  92.     writexy(15,8,'1  Saisir une liste de mots de passe');
  93.     writexy(15,10,'2  Contrôler un mot de passe ');
  94.     writexy(15,12,'3  Fin');
  95.     writexy(15,15,'Votre choix : ');
  96.     readln(choix);
  97.     if choix = 1 then begin;
  98.       liste_saisir;
  99.       liste_enregistrer;
  100.     end;
  101.     if choix = 2 then begin;
  102.       mp_Index := random(10)+1;
  103.       motdepasse_charger(mp_Index);
  104.       motdepasse_controler;
  105.       motdepasse_reagir;
  106.     end;
  107.   until choix = 3;
  108. end;
  109.  
  110.  
  111. begin;
  112.   textcolor(7);
  113.   textbackground(black);
  114.   menu;
  115. end.
  116.