Код:
type
TStudent=record
FIO:string[235];//Поле Ф.И.О.
Ngrup:Integer;//Поле номера группы
yspev:array[1..5] of Word;//поле массива успеваемости
sball:Extended;//поле среднего балла
end;
var
Fz:file of Tstudent;//Файл типа запись
Ft:Textfile;//Текстовый файл
Stud:array[1..100] of Tstudent;//массив записей
nzap:Integer;//номер записи
FileNameZ,FileNameT:string;//имя файла
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Memo1.Clear;
Button1.Hide;//Сделать невидимой кнопку "Ввести запись"
nzap:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);//Ввести новую запись
begin
nzap:=nzap+1;
with stud[nzap] do begin
FIO:=Edit1.Text;
Ngrup:=StrToInt(Edit2.Text);
yspev[1]:=StrToInt(Edit3.Text);
yspev[2]:=StrToInt(Edit4.Text);
yspev[3]:=StrToInt(Edit5.Text);
yspev[4]:=StrToInt(Edit6.Text);
yspev[5]:=StrToInt(Edit7.Text);
sball:=(yspev[1]+yspev[2]+yspev[3]+yspev[4]+yspev[5])/5;
Memo1.Lines.Add(IntToStr(Ngrup)+' '+fio+' '+IntToStr(yspev[1])+' '+IntToStr(yspev[2])+' '+IntToStr(yspev[3])+' '+IntToStr(yspev[4])+' '+IntToStr(yspev[5]));
end;
write(fz,Stud[nzap]); //Запись в файл
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
end;
procedure TForm1.Button2Click(Sender: TObject);//Создание нового файла записей
begin
OpenDialog1.Title:='Создать новый файл';//Изменение заголовка окна диалога
if OpenDialog1.Execute then //Выполнение стандартного диалога выбора имени файла
begin
FileNameZ:=OpenDialog1.FileName;//Возвращение имени дискового файла
AssignFile(Fz,FileNameZ);//Связывание файловой переменной Fz с именем файла
Rewrite(Fz);//Создание нового файла
end;
Button1.Show;//Сделать видимой кнопку "Ввести запись"
end;
procedure TForm1.Button3Click(Sender: TObject);//Открыть существующий файл
begin
if OpenDialog1.Execute then //Выполнение стандартного диалога выбора имени файла
begin
FileNameZ:=OpenDialog1.FileName;//Возвращение имени дискового файла
AssignFile(Fz,FileNameZ);//Связывание файловой переменной Fz с именем файла
Reset(Fz);//Открытие существующего файла
while not Eof(Fz) do begin
nzap:=nzap+1;
read(Fz,stud[nzap]);//Чтение записи из файла
with stud[nzap] do
if (yspev[1]+yspev[2]+yspev[3]+yspev[4]+yspev[5])/5 > 4 then
Memo1.Lines.Add(IntToStr(Ngrup)+' '+fio+' '+ IntToStr(yspev[1]) +' '+ IntToStr(yspev[2]) +' '+ IntToStr(yspev[3]) +' '+ IntToStr(yspev[4]) +' '+ IntToStr(yspev[5]) );
if Memo1.Lines.Count = 0 then Memo1.Lines.Add('Нет таких студентов, у которых средний балл > 4');
end;
Button1.Show;//Сделать видимой кнопку "Ввести запись"
end;
end;
procedure TForm1.Button5Click(Sender: TObject);//Сохранение результатов сортировки в текстовом файле
var i:Word;
begin
if SaveDialog1.Execute then //Выполнение стандартного диалога выбора имени файла
begin
FileNameT:=SaveDialog1.FileName; //Возвращение имени дискового файла
AssignFile(Ft,FileNameT); //Связывание файловой переменной Ft с именем файла
Rewrite(Ft); //Открытие нового текстового файла
end;
for i:=1 to nzap do
with stud[i] do Writeln(Ft,i:4,'.' ,Ngrup, fio,sball:8:2); //Запись в текстовый файл
CloseFile(Ft); //Закрытие текстового файла
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(Fz); //Закрытие файла записей при нажатии на кнопку "Close"
end;
procedure TForm1.Button4Click(Sender: TObject);
var i,j:word;
st:TStudent;
begin
for i:=1 to nzap-1 do //Сортировка массива записей
for j:=i+1 to nzap do
if Stud[i].sball<Stud[j].sball then begin
st:=Stud[i];
Stud[i]:=Stud[j];
Stud[j]:=st;
end;
Memo1.Clear;
for i:=1 to nzap do // Вывод в окно Memo1 отсортированных записей
with stud[i] do
Memo1.Lines.Add(IntToStr(i)+'.' + ' '+IntToStr(Ngrup)+' '+fio+' '+ FloatToStrF (sball,ffFixed,4,2));
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(Fz);
end;
end.
Помогите доработать чуток,а именно Ввести из текстового файла данные для массива структур, записать их в типизированный файл,а так все хорошо работает,только я создаю файл в формате .dat,сохраняю в .txt,а надо наоборот или как?
_________
форматируйте код тегами!
Модератор