Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКД_ПЭВМ_2ИКО_Урдабаева+++.docx
Скачиваний:
134
Добавлен:
01.03.2016
Размер:
833.23 Кб
Скачать

6.4. TOpenDialog және tSaveDialog компоненттері

TOpenDialog және TsaveDialog компоненттері DIALOGS бетінде орналасқан. Бұл беттің барлық компоненттері көрінбейтін болып табылады, яғни программаның жұмысы кезінде көрінбейді. Сондықтан да оларды форманың кез келген ыңғайлы жеріне орналастыруға болады. Қарастырылатын екі компоненттің қасиеттері бірдей, тек қана сыртқы түрлері өзгеше. Компонентті шақырғаннан кейін программаның атын және оның жолын таңдауға болатын диалогты терезе пайда болады. FileName қасиетінде таңдалған файлдың аты және оның жолы жазылады. Файлдарды фильтрлеу үшін Filter қасиеті, ал файлдың кеңеймесін беру үшін DefaultExtқасиеті қолданылады. Егер диалогты терезенің атын өзгерту қажет болса, онда Title қасиеті қолданылады.

6.5. Тапсырманы орындау реті

Тапсырма: қабылдау емтихандарын тапсыратын абитуриенттердің ведомостін файлға жазатын немесе файлдан оқитын программа жазыңыз. Әрбір жазба фамилиядан, сонымен бірге физика, математика пәндері бойынша және шығармадан алған бағаларынан тұрады. Абитуриенттердің орташа балы кему ретімен сұрыпталған тізімін шығарыңыз және бұл ақпаратты текстілік файлға жазыңыз.

6.5.1.TOpenDialog және tSaveDialog компоненттерін күйге келтіру

TOpenDialog және TSaveDialog компоненттерін формаға орналастыру үшін Dialogs бетінен немесепиктограммаларын тышқанмен шерту арқылы орналастырыңыз. Фильтрді қою келесі түрде орындалады. Сәйкес компонентті белгілеп, инспектор объектілері терезесінде Filter қасиетінде тышқанды екі рет шертіңіз. Сол жақ бөлігінде фильтрді сипаттайтын текст, ал оң жағында оның маскасы жазылатынFilterEditor терезесі пайда болады.OpenDialog1 үшін 6.1. суретте көрсетілгендей маска мәнін қоямыз. *.dat форматы кеңеймесі dat болатын барлық файлдардың көрінетіндігін, ал *.* форматы барлық файлдардың көрінетіндігін білдіреді.

6.1-Сурет

Файл автоматты түрде .dat кеңеймесімен жазылуы үшін DefaultExt қасиетінде қажет кеңеймені, яғни .dat кеңеймесін жазамыз. Осы жолмен текстілік файл үшін SaveDialog1 компонентін күйге келтіреміз(.txt кеңеймесі).

6.5.2. Программамен жұмыс

Программаны орындауға жіберуден кейін программаның диалогты терезесі шығады. «Ввести запись» батырмасы көрінбей тұрады. «Создать» батырмасына басу арқылы немесе бұрын құрылған файлды ашу үшін «Открыть» батырмасын басу арқылы

6.2-Сурет

жаңа файлды құру қажет. Содан соң ғана «Ввести запись» батырмасы көрінеді және жазбаны енгізуге болады. «Сортировка» батырмасын басқан кезде 6.2.-суреттегідей орташа балл кему ретімен сұрыпталады. «Сохранить» батырмасын басқанда сұрыпталған ведомосттен тұратын текстілік файл құрылады. «Close» немесе батырмаларын басу программаны жабады.

Программа тексті:

Unit tema6;

Interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

Type

TForm1 = class(TForm)

Edit1:TEdit;

Edit2:TEdit;

Edit3:TEdit;

Edit4:TEdit;

Label1:TLabel;

Label2:TLabel;

Label3:TLabel;

Label4:TLabel;

Label5:TLabel;

Memo1:TMemo;

Button1:TButton;

Button3:TButton;

Splitter1:Tsplitter;

Button5:TButton;

BitBtn1:TBitBtn;

SaveDialog1:TSaveDialog;

Button2:TButton;

OpenDialog1:TOpenDialog;

Button4:TButton;

Procedure FormCreate(Sender:TObject);

Procedure Button1Click(Sender:TObject);

Procedure Button2Click(Sender:TObject);

Procedure Button3Click(Sender:TObject);

Procedure Button4Click(Sender:TObject);

Procedure Button5Click(Sender:TObject);

Procedure BitBtn1Click(Sender:TObject);

Procedure FormClose(Seder:TObject; varAction:TCloseAction);

Private

{private declarations}

Public

{public declarations}

End;

Type

TStudent=record

FIO:string[40]; //ф.и.о. өрісі

Otc:array[1..3] 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:=’’;

Memo1.Clear;

Button1.Hide; //”Ввестизапись” батырмасын көрінбейтіндей ету

Nzap:=0;

End;

Procedure TForm1.Button1Click(Sender:TObject); //жаңажазбаныенгізу

Begin

Nzap:=nzap+1;

With stud[nzap] do begin

FIO:=Edit1.Text;

Otc[1]:=StrToInt(Edit2.Text);

Otc[2]:=StrToInt(Edit3.Text);

Otc[3]:=StrToInt(Edit4.Text);

Sball:=(otc[1]+otc[2]+otc[3])/3;

Memo1Lines.Add(fio+’ ‘+IntToStr(otc[1])+’ ‘+IntToStr(otc[2])+’ ‘+IntToStr(otc[3]));

End;

Write(fz,Stud[nzap]); //файлға жазу

Edit1.Text:=’’;

Edit2.Text:=’’;

Edit3.Text:=’’;

Edit4.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); //құрылған файлды ашу

End;

While not eof(fz) do begin

Nzap:=nzap+1;

Read(fz,stud[nzap]); //файлдан жазбаларды оқу

With stud[nzap] do

Memo1.Lines.Add(fio+’ ‘+IntToStr(otc[1])+’ ‘+IntToStr(otc[2])+’ ‘+IntToStr(otc[3]));

End;

Button1.Show; //”Ввестизапись” батырмасын көрінетіндей ету

End;

Procedure TForm1.Button4Click(Sender:TObject); //жазбаны сұрыптау

VarI,j:word;

St:student;

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)+’ ‘+fio+’ ‘+FloatToStrf(sball,fffixed,4,2));

End;

Procedure TForm1.Button5Click(Sender:TObject); //сұрыпталған нәтижені

//текстілік файлда сақтау

Var i:word;

Begin

If SaveDialog1Execute 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,’.’,fio.sball:8:2); //текстілік файлға жазу

CloseFile(Ft); //текстілік файлды жабу

End;

Procedure TForm1.BitBtn1Click(Sender:TObject);

Begin

CloseFile(fz); //“Close” батырмасын басу кезінде файлға жазуды жабу

End;

Procedure TForm1.FormClose(Sender:TObject; varAction:TCloseAction);

Begin

CloseFile(fz);

End;

End.