49739 (База данных DVD–фильмов), страница 3
Описание файла
Документ из архива "База данных DVD–фильмов", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "49739"
Текст 3 страницы из документа "49739"
Вот и все! Мой проект закончен. Есть две причины, для чего я делал это. Первая, что бы сдать его Вам Александр Григорьевич! Вторая, для получения знаний по операционным системам и самому программированию в целом и что бы, не было скучно. Ну а теперь о главном. Я думаю, цель, поставленная передо мной, выполнена. Я немного стал разбираться в Delphi. Научился работать с процедурами, с записями и с циклами. Также создал простую, а главное удобную программу, которая может пригодиться любому коллекционеру фильмов на DVD дисках. Очень простой интерфейс позволяет работать в программе даже ребенку, и старшему поколению, которому очень трудно обращаться с новыми технологиями, в том числе и компьютерами. А в завершении хотелось бы сказать большое спасибо разработчикам Delphi. Ведь без этой среды разработки у меня ни чего бы, не вышло. Всем спасибо за помощь. До свидания!!!
Список литературы
1. Михаил Фленов, «Библия Delphi», Санкт Петербург «БХВ- Петербург» 2004 год, 882 стр.
2. Владимир Гофман, Анатолий Хамоненко, «Delphi быстрый старт», Санкт Петербург «БХВ-Петербург» 2003 год, 280 стр.
3. Евгений Марков, Петр Дарахвелидзе, «Программирование в Delphi 7», Санкт Петербург «БХВ-Петербург» 2003 год, 780 стр.
4. Поган А.М., Царенко Ю.А., “Программирование в Delphi”, Москва «ЭКСМО» 2006 год, 309 стр.
5. Бобровский А. , “Delphi 5. Учебный курс.” , Санкт – Петербург, Москва, Харьков, Минск, «ЗАО Питербук» , 2004 год, 639 стр.
Приложение 1
Листинг программы и её модулей
program Kursovik;
uses
Forms,
kurs in 'kurs.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Input in 'Input.pas' {Form3},
search in 'search.pas' {Form4};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.Run;
end.
Модуль kurs.pas
unit kursovik;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, Grids, DBGrids, ShellAPI, XPMan;
const
derect='savedvd\';
type disk=record
name:string[50];
stoim:integer;
year:integer;
reg:string[30];
cincom:string[30];
end;
tdvd=array[1..300] of disk;
recordfile=file of disk;
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N21: TMenuItem;
StringGrid1: TStringGrid;
ComboBox3: TComboBox;
Edit9: TEdit;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
reg1: TMenuItem;
cincom1: TMenuItem;
N13: TMenuItem;
N22: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
XPManifest1: TXPManifest;
N26: TMenuItem;
Label8: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
N25: TMenuItem;
procedure N8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
Procedure deletef(horizon:integer);
procedure editzap;
procedure clearlist;
procedure vivod (dvdfile:string);
procedure sort_1(dvdfile:string);
procedure sort_2(dvdfile: string);
procedure sort_3(dvdfile: string);
procedure sort_4(dvdfile: string);
procedure sort_5(dvdfile: string);
procedure N7Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure N16Click(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure reg1Click(Sender: TObject);
procedure cincom1Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N21Click(Sender: TObject);
procedure N23Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
procedure N26Click(Sender: TObject);
procedure Edit9Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N25Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
public
n,m,k:integer;
f,g:recordfile;
but:integer;
h:HWND;
horizon : integer;
end;
var
Form1: TForm1;
implementation
uses unit2, Input, search;
{$R *.dfm}
procedure tform1.clearlist;
begin
n:=0;
while n begin StringGrid1.Cells[0,n+1]:=''; StringGrid1.Cells[1,n+1]:=''; StringGrid1.Cells[2,n+1]:=''; StringGrid1.Cells[3,n+1]:=''; StringGrid1.Cells[4,n+1]:=''; StringGrid1.Cells[5,n+1]:=''; n:=n+1; end; stringgrid1.RowCount:=2; end; procedure tform1.vivod (dvdfile:string); var s:disk; count:integer; f1:recordfile; begin assignfile(f,dvdfile);{$I-} reset(f); {$I+} N:=0; count:=0; If IOResult=0 then begin while not eof(f) do begin count:=count+1; read(f,s); StringGrid1.cols[0][N+1]:=inttostr(count); StringGrid1.Cells[1,N+1]:=s.name; StringGrid1.Cells[2,N+1]:=inttostr(s.stoim)+' руб.'; StringGrid1.Cells[3,N+1]:=intToStr(s.year)+' год'; StringGrid1.Cells[4,N+1]:=s.reg; StringGrid1.Cells[5,N+1]:=s.cincom; N:=N+1; end; seek(f,0); closefile(f); if count=0 then clearlist else stringgrid1.rowcount:=N+1; end else begin createdir('savedvd\'); assignfile(f1,derect+'db_ disk.db'); rewrite(f1); closefile(f1); end; end; procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin horizon:=ARow; end; {Удаление записи} Procedure tform1.deletef(horizon:integer); var f1:recordfile; el:tdvd; begin but:=MessageBox(0,'Удалить данные?','Внимание!',MB_YESNO or MB_ICONquestion); if but=IDYES then begin assignfile(f1,derect+'new.db'); rewrite(f1); assignfile(f,derect+'db_ disk.db'); reset(f); n:=1; while not eof(f) do begin read(f,el[n]); if n <> horizon then write(f1,el[n]); n:=n+1; end; closefile(f); closefile(f1); erase(f); rename(f1,derect+'db_ disk.db'); vivod(derect+'db_disk.db'); end; end; procedure tform1.sort_1(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].name begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; procedure tform1.sort_2(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].stoim begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; procedure tform1.sort_3(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].year begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; procedure tform1.sort_4(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].reg begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; procedure tform1.sort_5(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].cincom begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; {Редактирование} procedure Tform1.editzap; var q:disk; new:string; begin n:=0; assignfile(f,derect+'db_ disk.db'); reset(f); try new:=Edit9.text; seek(f,horizon-1); read(f,q); case comboBox3.ItemIndex of 0:q.name:=new; 1:try q.stoim:=strtoint(new); except MessageBox(0,'Цена указывается в цифрах!','',MB_OK or MB_ICONWARNING) end; 2:try q.year:=strtoint(new); except MessageBox(0,'Год выпуска указывается в цифрах!','',MB_OK or MB_ICONWARNING) end; 3:q.reg:=new; 4:q.cincom:=new; end; begin seek(f,horizon-1); write(f,q); closefile(f); end; except MessageBox(0,'Выбирите строку из списка.','',MB_OK or MB_ICONWARNING) end; edit9.clear; vivod(derect+'db_ disk.db'); end; procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Rows[0][0]:='Номер'; StringGrid1.Rows[0][1]:='Название фильма'; StringGrid1.Rows[0][2]:='Цена DVD-диска'; StringGrid1.Rows[0][3]:='Год выпуска'; StringGrid1.Rows[0][4]:='Режиссёр'; StringGrid1.Rows[0][5]:='Кинокомпания'; vivod (derect+'db_sot.db') end; procedure TForm1.N8Click(Sender: TObject); begin but:=MessageBox(0,'Закрыть программу?','Внимание!',MB_YESNO or MB_ICONINFORMATION); if but=IDYES then Close; end; procedure TForm1.N7Click(Sender: TObject); begin vivod (derect+'db_ disk.db'); end; procedure TForm1.N14Click(Sender: TObject); begin sort_1(derect+'db_ disk.db'); end; procedure TForm1.N15Click(Sender: TObject); begin sort_2(derect+'db_ disk.db'); end; procedure TForm1.N16Click(Sender: TObject); begin sort_3(derect+'db_ disk.db'); end; procedure TForm1.N17Click(Sender: TObject); begin sort_4(derect+'db_ disk.db'); end; procedure TForm1.N18Click(Sender: TObject); begin sort_5(derect+'db_sot.db'); end; {Добавление} procedure TForm1.N4Click(Sender: TObject); begin Form3.ShowModal; vivod(derect+'db_ disk.db'); end; {Вывод во всплывающем меню} procedure TForm1.N2Click(Sender: TObject); begin vivod(derect+'db_ disk.db'); end; {Сортировка во всплывающем меню} procedure TForm1.N10Click(Sender: TObject); begin sort_1(derect+'db_ disk.db'); end; procedure TForm1.N11Click(Sender: TObject); begin sort_2(derect+'db_sot.db'); end; procedure TForm1.N12Click(Sender: TObject); begin sort_3(derect+'db_ disk.db'); end; procedure TForm1.reg1Click(Sender: TObject); begin sort_4(derect+'db_ disk.db'); end; procedure TForm1.cincom1Click(Sender: TObject); begin sort_5(derect+'db_ disk.db'); end; {Очистка всплывающее} procedure TForm1.N9Click(Sender: TObject); begin clearlist; end; {Очистка в меню} procedure TForm1.N23Click(Sender: TObject); begin clearlist end; {Редактирование в меню} procedure TForm1.N6Click(Sender: TObject); begin if (edit9.text='') or (edit9.text='Введите новые данные...') then MessageBox(0,'Введите новые данные.','Внимание!',MB_ok or MB_ICONINFORMATION) else editzap; end; //на кнопку procedure TForm1.Button2Click(Sender: TObject); begin deletef(horizon); end; //удаление во всплывающем procedure TForm1.N26Click(Sender: TObject); begin deletef(horizon); end; //Удаление из меню procedure TForm1.N5Click(Sender: TObject); begin deletef(horizon); end; ///--------------------------------------------------- {Окно "О программе"} procedure TForm1.N21Click(Sender: TObject); begin Form2.ShowModal; end; procedure TForm1.Edit9Click(Sender: TObject); begin edit9.clear; end; procedure TForm1.Button7Click(Sender: TObject); begin but:=MessageBox(0,'Закрыть программу?','Внимание!',MB_YESNO or MB_ICONINFORMATION); if but=IDYES then Close; end; procedure TForm1.Button5Click(Sender: TObject); begin clearlist; end; procedure TForm1.Button6Click(Sender: TObject); begin vivod(derect+'db_sot.db'); end; procedure TForm1.Button1Click(Sender: TObject); begin Form3.ShowModal; vivod(derect+'db_sot.db'); end; procedure TForm1.Button3Click(Sender: TObject); begin Form4.ShowModal; end; procedure TForm1.N25Click(Sender: TObject); begin Form4.ShowModal; end; procedure TForm1.Button4Click(Sender: TObject); begin if (edit9.text='') or (edit9.text='Новые данные...') then MessageBox(0,'Введите новые данные для изменения.','Внимание!',MB_ok or MB_ICONINFORMATION) else editzap; end; end. Модуль Unit2.pas; unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg; type TForm2 = class(TForm) Label2: TLabel; Label6: TLabel; Bevel1: TBevel; Bevel2: TBevel; Bevel3: TBevel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Button1: TButton; Label1: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label7: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin Close; end; end. Модуль search.pas; unit search; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, Grids; const derect='savedvd\'; type disk=record name:string[50]; stoim:integer; year:integer; reg:string[30]; cincom:string[30]; end; tdvd=array[1..300] of disk; recordfile=file of disk; TForm4 = class(TForm) Label3: TLabel; Label4: TLabel; Edit7: TEdit; ComboBox1: TComboBox; Button1: TButton; StringGrid1: TStringGrid; Button2: TButton; procedure Button1Click(Sender: TObject); procedure search_1(dvdfile:string; var g:recordfile); procedure search_2(dvdfile:string; var g:recordfile); procedure search_3(dvdfile:string; var g:recordfile); procedure search_4(dvdfile:string; var g:recordfile); procedure search_5(dvdfile:string; var g:recordfile); procedure sort_1(dvdfile:string); procedure sort_2(dvdfile: string); procedure vivod (dvdfile:string); procedure Edit7Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); private public f,g:recordfile; n:integer; dvdfile:string; end; var Form4: TForm4; implementation {$R *.dfm} //////----------------- {Вывод списка} procedure tform4.vivod (dvdfile:string); var s:disk; count:integer; f1:recordfile; begin assignfile(f,dvdfile);{$I-} reset(f); {$I+} N:=0; count:=0; If IOResult=0 then begin while not eof(f) do begin count:=count+1; read(f,s); StringGrid1.cols[0][N+1]:=inttostr(count); StringGrid1.Cells[1,N+1]:=s.name; StringGrid1.Cells[2,N+1]:=inttostr(s.stoim)+' руб.'; StringGrid1.Cells[3,N+1]:=intToStr(s.year)+' год'; StringGrid1.Cells[4,N+1]:=s.reg; StringGrid1.Cells[5,N+1]:=s.cincom; N:=N+1; end; seek(f,0); closefile(f); if count=0 then else stringgrid1.rowcount:=N+1; end else begin createdir('Database\'); assignfile(f1,derect+'db_ disk.db'); rewrite(f1); closefile(f1); end; end; //----------------- procedure tform4.sort_1(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].name begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; procedure tform4.sort_2(dvdfile: string); var f,q:file of disk; c,i,n:integer; buf:disk; el:tdvd; begin assignfile(q,derect+'db.db'); rewrite(q); assignfile(f,dvdfile); reset(f); c:=0; while not eof(f)do begin c:=c+1; read(f,el[c]); end; for i:=1 to c do for n:=i+1 to c do if el[n].stoim begin buf:=el[n]; el[n]:=el[i]; el[i]:=buf; end; for i:=1 to c do begin write(q,el[i]); end; closefile(f); closefile(q); vivod(derect+'db.db'); erase(q); end; //--------------------- procedure tform4.search_1(dvdfile:string; var g:recordfile); var g1:recordfile; s:disk; nameof:string; begin n:=0; nameof:=Edit7.text; assignfile(g1,derect+'result.db'); rewrite(g1); assignfile(g,derect+'db_ disk.db'); {$I-} reset(g); {$I+} if IOResult = 0 then begin while not eof(g) do begin read(g,s); if s.name=nameof then write(g1,s) end; end else showMessage ('Ошибка'); seek(g1,0); while not eof(g1) do begin read(g1,s); inc(n); end; closefile(g); closefile(g1); Edit7.Clear; if n=0 then begin MessageBox(0,'Нет такого фильма. Введите другие данные','Внимание!',MB_OK or MB_ICONINFORMATION); end else vivod(derect+'result.db'); erase(g1) end; procedure tform4.search_2(dvdfile:string; var g:recordfile); var g1:recordfile; s:disk; stoimof:integer; begin n:=0; try stoimof:=StrToInt(Edit7.text); assignfile(g1,derect+'result.db'); rewrite(g1); assignfile(g,derect+'db_ disk.db'); {$I-} reset(g); {$I+} if IOResult = 0 then begin while not eof(g) do begin read(g,s); if s.stoim <= stoimof then write(g1,s) end; end else showMessage ('Ошибка'); seek(g1,0); while not eof(g1) do begin read(g1,s); inc(n); end; closefile(g); closefile(g1); Edit7.Clear; if n=0 then begin MessageBox(0,'Дисков со стоимостью, ниже заданной, нет.','Внимание!',MB_OK or MB_ICONINFORMATION); end else sort_2(derect+'result.db'); erase(g1) except MessageBox(0,'Цена указывается цифрами.','Внимание!',MB_OK or MB_ICONWARNING); Edit7.Clear; end; end; procedure tform4.search_3(dvdfile:string; var g:recordfile); var g1:recordfile; s:disk; yearof:real; begin n:=0; try yearof:=StrToFloat(Edit7.text); assignfile(g1,derect+'result.db'); rewrite(g1); assignfile(g,derect+'db_sot.db'); {$I-} reset(g); {$I+} if IOResult = 0 then begin while not eof(g) do begin read(g,s); if s.year = yearof then write(g1,s) end; end else showMessage ('Ошибка'); seek(g1,0); while not eof(g1) do begin read(g1,s); inc(n); end; closefile(g); closefile(g1); Edit7.Clear; if n=0 then begin MessageBox(0,'Фильмов данного года выпуска нет.','Внимание!',MB_OK or MB_ICONINFORMATION); end else sort_1(derect+'result.db'); erase(g1) except MessageBox(0,'Год выпуска указывается в цифрах.','Внимание!',MB_OK or MB_ICONWARNING); Edit7.Clear; end; end; procedure tform4.search_4(dvdfile:string; var g:recordfile); var g1:recordfile; s:disk; regof:string; begin n:=0; regof:=Edit7.text; assignfile(g1,derect+'result.db'); rewrite(g1); assignfile(g,derect+'db_ disk.db'); {$I-} reset(g); {$I+} if IOResult = 0 then begin while not eof(g) do begin read(g,s); if s.reg=regof then write(g1,s) end; end else showMessage ('Ошибка.'); seek(g1,0); while not eof(g1) do begin read(g1,s); inc(n); end; closefile(g); closefile(g1); Edit7.Clear; if n=0 then begin MessageBox(0,'Данного режиссёра нет','Внимание!',MB_OK or MB_ICONINFORMATION); end else sort_1(derect+'result.db'); erase(g1) end; procedure tform4.search_5(dvdfile:string; var g:recordfile); var g1:recordfile; s:disk; cincomof:string; begin n:=0; cincomof:=Edit7.text; assignfile(g1,derect+'result.db'); rewrite(g1); assignfile(g,derect+'db_ disk.db'); {$I-} reset(g); {$I+} if IOResult = 0 then begin while not eof(g) do begin read(g,s); if s.cincom=cincomof then write(g1,s) end; end else showMessage ('Ошибка'); seek(g1,0); while not eof(g1) do begin read(g1,s); inc(n); end; closefile(g); closefile(g1); Edit7.Clear; if n=0 then begin MessageBox(0,'Данной кинокомпаниии нет.','Внимание!',MB_OK or MB_ICONINFORMATION); end else sort_1(derect+'result.db'); erase(g1) end; procedure TForm4.Button1Click(Sender: TObject); begin if (edit7.Text='') or (edit7.Text='Введите данные...') then MessageBox(0,'Введите данные для поиска.','Внимание!',MB_ok or MB_ICONINFORMATION) else case combobox1.ItemIndex of 0:search_1(dvdfile,f); 1:search_2(dvdfile,f); 2:search_3(dvdfile,f); 3:search_4(dvdfile,f); 4:search_5(dvdfile,f); end; end; procedure TForm4.Edit7Click(Sender: TObject); begin edit7.Clear; end; procedure TForm4.FormCreate(Sender: TObject); begin StringGrid1.Rows[0][0]:='Номер'; StringGrid1.Rows[0][1]:='Название фильма'; StringGrid1.Rows[0][2]:='Цена DVD-диска'; StringGrid1.Rows[0][3]:='Год выпуска'; StringGrid1.Rows[0][4]:='Режиссёр'; StringGrid1.Rows[0][5]:='Кинокомпания'; end; procedure TForm4.Button2Click(Sender: TObject); begin Form4.Close; end; end. Модуль Input.pas; unit Input; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls; const derect='savedvd\'; type disk=record name:string[50]; stoim:integer; year:integer; reg:string[30]; cincom:string[30]; end; recordfile=file of disk; TForm3 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Button1: TButton; Button2: TButton; procedure input(var f:recordfile; var dvdfile:string); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public n,k:integer; f,g:recordfile; dvdfile:string; end; var Form3: TForm3; implementation uses kursovik; {$R *.dfm} procedure tform3.input(var f:recordfile; var dvdfile:string); var s,q:disk; begin n:=1; k:=0; assignfile(g,derect+'buffer.db'); rewrite(g); assignfile(f,derect+'db_ disk.db');{$I-} reset(f); {$I+} If IOResult=0 then begin while not eof(f) do begin inc(n); read(f,s); write(g,s); end; closefile(f); end else begin rewrite(f); closefile(f); end; try q.name:=Edit1.text; q.stoim:=StrtoInt(Edit2.Text); q.year:=Strtoint(Edit3.Text); q.reg:=Edit4.Text; q.cincom:=Edit5.Text; seek(g,0); while not eof(g) do begin read(g,s); if s.name=q.name then k:=1; end; if k=1 then MessageBox(0,'Данный фильм существует.','',MB_ok or MB_ICONINFORMATION) else begin write(g,q); MessageBox(0,'Данные добавлены в файл.','',MB_ok or MB_ICONINFORMATION); end; Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear; except MessageBox(0,'Цена и год выпуска указывается в цифрах!','',MB_OK or MB_ICONWARNING); Edit2.Clear; Edit3.Clear; end; closefile(g); erase(f); rename(g,derect+'db_ disk.db'); end; procedure TForm3.Button1Click(Sender: TObject); begin close; end; procedure TForm3.Button2Click(Sender: TObject); begin if (edit1.Text='') or (edit2.text='') or (edit3.Text='') or (edit4.Text='') or (edit5.Text='') then MessageBox(0,'Одно или несколько полей пусты, проверьте правильность заполнения.','Внимание!',MB_ok or MB_ICONINFORMATION) else input(f,dvdfile); end; end.