Advertisement
AIwinter

Untitled

Nov 17th, 2022
1,083
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.83 KB | None | 0 0
  1. Uses Crt;
  2.  
  3. type
  4.   Actors = Record
  5.     ID_A: word;
  6.     Name_A: string[18];
  7.     Fam_A: string[18];
  8.     DofB: string[8];
  9.     Roles: byte; {1 - главная, 2 - второстепенная, 3 - массовка}
  10.     Gender: boolean;
  11.   end;
  12.  
  13.   Films = Record
  14.     ID_F: word;
  15.     ID_A: word;
  16.     Name_F: string[20];
  17.     Duration: string[6];
  18.     Date: string[8];
  19.   end;
  20.  
  21. var
  22.   FV1: file of Actors;
  23.   ActorsBP: Actors;
  24.  
  25.   FV2: file of Films;
  26.   FilmsBP: Films;
  27.  
  28.   temp: longword;
  29. const
  30.   ActorsName = 'Actors.uwu';
  31.   FilmsName = 'Films.uwu';
  32.   Yes = 'YyУу';
  33.  
  34. procedure Open;
  35. begin
  36.   Assign(FV1, ActorsName);
  37.   Assign(FV2, FilmsName);
  38.  
  39.   if not FileExists(ActorsName) then ReWrite(FV1)
  40.   else ReSet(FV1);
  41.  
  42.   if not FileExists(FilmsName) then ReWrite(FV2)
  43.   else ReSet(FV2);
  44. end;
  45.  
  46. procedure Close;
  47. begin
  48.   Close(FV1);
  49.   Close(FV2);
  50. end;
  51.  
  52. procedure Add;
  53. begin
  54.   var
  55.   input: string;
  56.   var role: integer;
  57. begin
  58.   if (FileSize(FV1) > 0) then
  59.  
  60.   begin
  61.     Seek(FV1, FileSize(FV1) - 1);
  62.     Read(FV1, ActorsBP);
  63.     ActorsBP.ID_A := ActorsBP.ID_A + 1;
  64.   end
  65.   else ActorsBP.ID_A := 0;
  66.  
  67.   repeat
  68.     Write('Имя актера: ');
  69.     Readln(input);
  70.     until (input.Length <= 18) and (input <> ''.ToString());
  71.     ActorsBP.Name_A := input;
  72.    
  73.   repeat
  74.     Write('Фамилия актера: ');
  75.     Readln(input);
  76.     until (input.Length <= 18) and (input <> ''.ToString());
  77.     ActorsBP.Fam_A := input;
  78.    
  79.   repeat
  80.     Write('Дата рождения: ');
  81.     Readln(input);
  82.     input.Replace('.', '')
  83.     until (input.Length = 8) and longword.TryParse(input, temp);
  84.     ActorsBP.DofB := input;
  85.    
  86.    repeat
  87.      Write('Роль: (1 - главная; 2 - второстепенная; 3 - массовка)');
  88.      Readln(input);
  89.      TryStrToInt(input, role);
  90.      until (input.Length = 1) and (input <> ''.ToString()) and (role > 0) and (role < 4); {нужно сравнить, равен ли инпут 1/2/3}
  91.      ActorsBP.Roles := role;
  92.      
  93.    repeat
  94.      Write('Пол мужской?: (Y of N)');
  95.      Readln(input);
  96.      untill  Yes.Contains(input) or No.Contains(input);
  97.      ActorsBP.Gender := Yes.Contains(input) ? ActorsBP.Gender := input) : (ActorsBP.Gender := No.Contains(input));
  98.      
  99.      
  100.      end;
  101. end;
  102.  
  103. procedure List;
  104. begin
  105. end;
  106.  
  107. procedure Menu;
  108. var
  109.   input: string;
  110. begin
  111.   Write('Введите "help" для списка команд. Введите команду: ');
  112.   while input<>'1' do
  113.   begin
  114.     ReadLn(input);
  115.     case input of
  116.       'help':
  117.         WriteLn('1 - выйти' + NewLine + '2 - добавить данные в таблицу'
  118.                     + NewLine + '3 - вывести таблицу Актеров');
  119.       '2': Add;
  120.       '3': List;
  121.     end;
  122.   end;
  123.  
  124. end;
  125.  
  126. begin
  127.   Open;
  128.   Menu;
  129.   Close;
  130. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement