unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button10: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Label1: TLabel;
Label10: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Memo1: TMemo;
procedure Button10Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Edit7Change(Sender: TObject);
Procedure RSt;
Procedure WSt;
private
{ private declarations }
public
{ public declarations }
end;
type
TSt = record
Ng: Word;
Pib:String[40];
Oc1, Oc2, Oc3:Byte;
step:Real;
end;
var
Form1: TForm1;
ST:Tst;
f:file of Tst;
Fname:string;
implementation
{$R *.lfm}
{Процедура читання записів}
Procedure TForm1.RSt;
begin
with St do
begin
Ng:= StrToInt(Edit1.Text);
Pib:= Edit2.Text;
Oc1:=StrToInt(Edit3.Text);
Oc2:=StrToInt(Edit4.Text);
Oc3:=StrToInt(Edit5.Text);
Step:=StrToFloat(Edit8.Text);
end;
end;
{Процедура запису записів}
Procedure TForm1.WSt;
begin
with St do
begin
Edit1.Text:=IntToStr(Ng);
Edit2.Text:=Pib;
Edit3.Text:=IntToStr(Oc1);
Edit4.Text:=IntToStr(Oc2);
Edit5.Text:=IntToStr(Oc3);
Edit8.Text:=FloatToStr(Step);
end;
end;
{ TForm1 }
procedure TForm1.Edit7Change(Sender: TObject);
begin
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Seek(F,FileSize(F)); //Тута якась помилка фіг знає шо за
RSt;
write(f,St);
Edit1.TExt:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit8.Text:='';
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
RSt;
Seek(F,FilePos(F)-1);
write(F,St);
end;
procedure TForm1.Button7Click(Sender: TObject);
var
Ls1:TstringList;
n,i,gr:integer;
f1:boolean;
z:real;
begin
Ls1:=TstringList.Create;
Ls1.Sorted:=true;
if Edit6.Text='' then
ShowMessage('Введіть номер групи')
else
begin
gr:=StrToInt(Edit6.Text);
n:=FileSize(F);
f1:=true; z:=0;
Seek(F,0);
for i:=1 to n do
begin
read(F,St);
if gr=St.Ng then
begin
f1:=false;
z:=z+St.Step;
Ls1.Add(St.Pib);
end;
end;
end;
Memo1.Lines.Clear;
Edit9.Text:='';
if f1 then Memo1.Lines.Add('Такої групи немає')
else
begin
Memo1.Lines.Add('Список студентів' + inttostr(gr) + ' групи');
Memo1.Lines.AddStrings(Ls1);
Edit9.Text:=floattostr(z);
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
CloseFile(F);
close;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
if Edit7.Text='' then
Showmessage('Введіть ім*я файлу')
else
begin
Fname:=Edit7.Text;
if NOT FileExists(Fname) then
Showmessage('Такого файлу не існує')
else
begin
AssignFile(F,Fname);
Reset(F);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Seek(F,0);
Read(F,St);
WSt;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
if Edit7.Text='' then
Showmessage('Введіть ім*я файлу')
else
begin
Fname:=Edit7.Text;
if NOT FileExists(Fname) then
Showmessage('Такого файлу не існує')
else
begin
AssignFile(F,Fname);
Reset(F);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Seek(F,FileSize(F)-1);
Read(F,St);
WSt;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if FilePos(F)<FileSize(F) then
begin
Read(F,St);
WSt;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
n:=FilePos(F)-2;
if n>=0 then
begin
Seek(F,n);
Read(F,St);
WSt;
end;
end;
end.