Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Uses Crt;
- type
- Actors = Record
- ID_A: word;
- Name_A: string[18];
- Fam_A: string[18];
- DofB: string[8];
- Roles: byte; {1 - Π³Π»Π°Π²Π½Π°Ρ, 2 - Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°Ρ, 3 - ΠΌΠ°ΡΡΠΎΠ²ΠΊΠ°}
- Gender: boolean;
- end;
- Films = Record
- ID_F: word;
- ID_A: word;
- Name_F: string[20];
- Duration: string[6];
- Date: string[8];
- end;
- var
- FV1: file of Actors;
- ActorsBP: Actors;
- FV2: file of Films;
- FilmsBP: Films;
- temp: longword;
- DelID: array of word;
- const
- ActorsName = 'Actors.uwu';
- FilmsName = 'Films.uwu';
- BackupActors = 'BackupA.uwu';
- Yes = 'YyΠ£Ρ';
- No = 'NnΠΠ½';
- procedure Open;
- begin
- Assign(FV1, ActorsName);
- Assign(FV2, FilmsName);
- if not FileExists(ActorsName) then ReWrite(FV1)
- else ReSet(FV1);
- if not FileExists(FilmsName) then ReWrite(FV2)
- else ReSet(FV2);
- end;
- procedure Close;
- begin
- Close(FV1);
- Close(FV2);
- end;
- procedure AddActors;
- var
- input: string;
- role: integer;
- begin
- begin
- if (FileSize(FV1) > 0) then
- begin
- Seek(FV1, FileSize(FV1) - 1);
- Read(FV1, ActorsBP);
- ActorsBP.ID_A := ActorsBP.ID_A + 1;
- end
- else ActorsBP.ID_A := 0;
- repeat
- Write('ΠΠΌΡ Π°ΠΊΡΠ΅ΡΠ°: ');
- Readln(input);
- until (input.Length <= 18) and (input <> ''.ToString());
- ActorsBP.Name_A := input;
- repeat
- Write('Π€Π°ΠΌΠΈΠ»ΠΈΡ Π°ΠΊΡΠ΅ΡΠ°: ');
- Readln(input);
- until (input.Length <= 18) and (input <> ''.ToString());
- ActorsBP.Fam_A := input;
- repeat
- Write('ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ: ');
- Readln(input);
- input.Replace('.', '')
- until (input.Length = 8) and longword.TryParse(input, temp);
- ActorsBP.DofB := input;
- repeat
- Write('Π ΠΎΠ»Ρ (1 - Π³Π»Π°Π²Π½Π°Ρ; 2 - Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°Ρ; 3 - ΠΌΠ°ΡΡΠΎΠ²ΠΊΠ°) : ');
- Readln(input);
- TryStrToInt(input, role);
- until (input.Length = 1) and (input <> ''.ToString()) and (role > 0) and (role < 4); {Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ, ΡΠ°Π²Π΅Π½ Π»ΠΈ ΠΈΠ½ΠΏΡΡ 1/2/3}
- ActorsBP.Roles := role;
- repeat
- Write('ΠΠΎΠ» ΠΌΡΠΆΡΠΊΠΎΠΉ? (Y of N) : ');
- Readln(input);
- until (Yes.Contains(input)) or (No.Contains(input));
- ActorsBP.Gender := Yes.Contains(input) ? true : false;
- end;
- Write(FV1, ActorsBP);
- end;
- procedure AddFilms;
- begin
- var input: string;
- begin
- if FileSize(FV2) > 0 then
- begin
- Seek(FV2, FileSize(FV2) - 1);
- Read(FV2, FilmsBP);
- FilmsBP.ID_F := FilmsBP.ID_F + 1;
- end
- else FilmsBP.ID_F := 0;
- repeat
- Write('ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠΌΠ°: ');
- Readln(input);
- until (input.Length <= 20) and (input <> ''.ToString());
- FilmsBP.Name_F := input;
- repeat
- Write('ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: ');
- Readln(input);
- input.Replace(':', '')
- until (input.Length = 6) and longword.TryParse(input, temp);
- FilmsBP.Duration := input;
- repeat
- Write('ΠΠ°ΡΠ° Π²ΡΡ ΠΎΠ΄Π°: ');
- Readln(input);
- input.Replace('.', '')
- until (input.Length = 8) and longword.TryParse(input, temp);
- FilmsBP.Date := input;
- end;
- Write(FV2, FilmsBP);
- end;
- procedure ListActors;
- begin
- Seek(FV1, 0);
- while not Eof(FV1) do
- begin
- Read(FV1, ActorsBP);
- var Role: string;
- var Gender: string;
- if ActorsBP.Gender = True then
- Gender := 'ΠΌΡΠΆΡΠΊΠΎΠΉ'
- else
- Gender := 'ΠΆΠ΅Π½ΡΠΊΠΈΠΉ';
- case ActorsBP.Roles of
- 1: Role := 'Π³Π»Π°Π²Π½Π°Ρ';
- 2: Role := 'Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°Ρ';
- 3: Role := 'ΠΌΠ°ΡΡΠΎΠ²ΠΊΠ°';
- end;
- WriteLn(' ID: ' + ActorsBP.ID_A + ' | ΠΠΌΡ: ' + ActorsBP.Name_A + ' | Π€Π°ΠΌΠΈΠ»ΠΈΡ: ' + ActorsBP.Fam_A + ' | ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ: ' + ActorsBP.DofB + ' | ΠΠΎΠ»: ' + Gender + ' | Π ΠΎΠ»Ρ: ' + Role);
- end;
- end;
- procedure ListFilms;
- begin
- Seek(FV2, 0);
- while not Eof(FV2) do
- begin
- Read(FV2, FilmsBP);
- WriteLn(' ID: ' + FilmsBP.ID_F + ' | ΠΠ°Π·Π²Π°Π½ΠΈΠ΅: ' + FilmsBP.Name_F + ' | ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: ' + FilmsBP.Duration + ' | ΠΠ°ΡΠ° Π²ΡΡ ΠΎΠ΄Π°: ' + FilmsBP.Date);
- end;
- end;
- function SearchByID(ID: word; var FoundActor: Actors): boolean;
- begin
- result := False;
- Seek(FV1, 0); //ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° 0 Π·Π°ΠΏΠΈΡΡ
- while (not Eof(FV1)) and (not result) do //ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° ΠΈ Π½Π΅ ΡΡΡ
- begin
- Read(FV1, ActorsBP); //Π±Π΅ΡΠ΅ΠΌ ΠΏΠΎ 1 Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· fv1 Π² Π°ΠΊΡΠΎΡΡΠ±ΠΏ
- if ID = ActorsBP.ID_A then //Π΅ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ id ΠΈΠΌΠ΅Π΅ΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΠΈ
- begin
- FoundActor := ActorsBP; //ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠ° ΡΡΡ Π·Π°ΠΏΠΈΡΡ
- result := True; {ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ, T or F} //ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΡΡ
- end;
- end;
- end;
- procedure Delete;{ΠΌΠ°ΡΠΊΠΈΡΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ}
- var
- input: string;
- ID: word;
- begin
- repeat
- Write('ΠΠ²Π΅Π΄ΠΈΡΠ΅ ID Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ: ');
- ReadLn(input);
- until (word.TryParse(input, ID)); {ΠΈΠ½ΠΏΡΡ ΠΊΠΎΠ½Π²Π΅ΡΡ. Π² word ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ID // true or false Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² until}
- if SearchByID(ID, ActorsBP) then
- begin
- SetLength(DelID, DelID.Length +1); //ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°
- DelID[DelID.Length - 1] := ID;
- WriteLn('ΠΠ°ΠΏΠΈΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ');
- foreach var i in DelID do
- begin
- WriteLn(i.ToString());
- end;
- end
- else
- WriteLn('ΠΠ΅ Π½Π°ΡΠ΅Π»ΡΡ Π°ΠΊΡΠ΅Ρ ');
- end;
- procedure Zap;{ΡΠ΄Π°Π»ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ}
- var FV3: file of Actors;
- begin
- Assign(FV3, BackupActors);
- ReWrite(FV3);
- Seek(FV1,0);
- while not Eof(FV1) do
- begin
- Read(FV1, ActorsBP);
- if (DelID <> nil) and (not DelID.Contains(ActorsBP.ID_A)) then
- Write(FV3, ActorsBP);
- end;
- Close(FV1);
- Erase(FV1);
- Close(FV3);
- Rename(FV3, ActorsName);
- ReSet(FV1);
- DelID := nil; //new word[1];
- end;
- procedure Menu;
- var
- input: string;
- begin
- while input <> '1' do
- begin
- Write('ΠΠ²Π΅Π΄ΠΈΡΠ΅ "help" Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: ');
- ReadLn(input);
- case input of
- 'help':
- WriteLn('1 - Π²ΡΠΉΡΠΈ' + NewLine + '2 - Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ Π°ΠΊΡΠ΅ΡΠΎΠ²'
- + NewLine + '3 - Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ Π°ΠΊΡΠ΅ΡΠΎΠ²' + NewLine + '4 - Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠ»ΡΠΌΠΎΠ²' + NewLine + '5 - Π²ΡΠ²Π΅ΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠ»ΡΠΌΠΎΠ²' + NewLine + '6 - ΡΠ΄Π°Π»ΠΈΡΡ1' + NewLine + '7 - ΡΠ΄Π°Π»ΠΈΡΡ2');
- '2': AddActors;
- '3': ListActors;
- '4': AddFilms;
- '5': ListFilms;
- '6': Delete;
- '7': Zap;
- //'8': SearchByName (ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ)
- //'9': Edit (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅)
- end;
- end;
- end;
- begin
- Open;
- Menu;
- Close;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement