Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Тапсырма №4.






Файлдарды сақ тау жә не оқ у жұ мысын SaveDialog1 жә не OpenDialog1 компоненттері арқ ылы ұ йымдастырылады. Бұ л компоненттер бетінде Dialogs орналасқ ан (ол жө нінде ІV тарауда айтылғ ан).

Енді оқ иғ аны ө ң деуші процедуралар қ ұ руды қ арастырайық. ә рбір компоненттің Name қ асиетін: BitBtn1-ді -BitBtnNew, BitBtn2-ні -BitBtnOpen, BitBtn3-ті -BitBtnSort, BitBtn4-ті – BitBtnSave деп алмастырайық. Ә рбір батырманы жылдам екі рет басу арқ ылы сә йкес оқ иғ аларды ө ң деуші процедураларды ашып, тө мендегі программа мә тінін енгіземіз.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Spin, Buttons, Grids;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

BitBtnNew: TBitBtn;

BitBtnOpen: TBitBtn;

BitBtnSort: TBitBtn;

BitBtnSave: TBitBtn;

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

SpinEdit1: TSpinEdit;

Label1: TLabel;

procedure FormCreate(Sender: TObject);

procedure BitBtnSortClick(Sender: TObject);

procedure BitBtnNewClick(Sender: TObject);

procedure SpinEdit1Change(Sender: TObject);

procedure BitBtnOpenClick(Sender: TObject);

procedure BitBtnSaveClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var mzap: array[1..20] of zap; //жазулар массивін хабарлау

FileZap: file; // мә тіндік файлды хабарлау

FileNameZap, FileNameText: String; //жазулар файлы мен мә тіндік файлдардың атаулары

n: integer; //жазулар массивінің ағ ымдағ ы элементтер саны

//форма қ ұ ру процедурасы

var

Form1: TForm1;

 

Implementation {$R *.dfm}

type

zap=record // жазуды хабарлау

fio: string[20];

mat, phiz, chem: integer;

end;

var mzap: array[1..20] of zap; // жазулар массивін хбарлау

fileZap: file of zap; // жазулар файлын хабарлау

fileText: textfile; //мә тіндік файлды хабарлау

filenameZap, FileNameText: string; // жазулар файлы мен мә тіндік файлдардың атаулары

n: integer; //жазулар массивінің ағ ымдағ ы элементтер саны

//форма қ ұ ру процедурасы

procedure TForm1.FormCreate(Sender: TObject);

var i: integer;

begin

with stringGrid1 do

begin //StringGrid 1 ұ яшық тарын толтыру

Cells[0, 0]: ='ғ ';

Cells[1, 0]: ='fio';

Cells[2, 0]: ='matem';

Cells[3, 0]: ='phyzics';

Cells[4, 0]: ='chemstry';

end;

BitbtnSort.Hide; // батырманы жасыру

{BitbtnSave.Hide; }

end; {}

// Сұ рыптауды орындайтын процедура

procedure TForm1.BitBtnSortClick(Sender: TObject);

var i, j: integer; vper: zap;

begin

for i: =1 to n do

with StringGrid1, mzap[i] do

begin

fio: =Cells[1, i];

mat: =StrToInt(Cells[2, i]);

phiz: =StrToInt(Cells[3, i]);

chem: =StrToInt(Cells[4, i]);

end; // кө піршікті сұ рыптау ә дісі

for i: =2 to n do

for j: =n downto i do

if mzap[j-1].fio> mzap[j].fio then

begin

vper: =mzap[j-1];

mzap[j-1]: =mzap[j];

mzap[j]: =vper;

end;

for i: =1 to n do // StringGrid1 ұ яшығ ын жазулар массивінің ө рістерімен толыру

with StringGrid1, mzap[i] do

begin Cells[0, i]: =intTostr(i);

Cells[1, i]: =fio;

Cells[2, i]: =intTostr(mat);

Cells[3, i]: =intTostr(phiz);

Cells[4, i]: =intTostr(chem);

end;

end;

// жаң а жазу файлын қ ұ ру

procedure TForm1.BitBtnNewClick(Sender: TObject);

var

i: integer;

begin

if MessageDlg('Файл мазмұ нының ө шірілмейтініне сенімдісі

бе? ', mtConfirmation, mbYesNoCancel, 0)< > mrYes

Then

begin

for i: =1 to n do

with StringGrid1, mzap[i] do

begin

fio: =Cells[1, i];

mat: =StrToInt(Cells[2, i]);

phiz: =StrToInt(Cells[3, i]);

chem: =StrToInt(Cells[4, i]);

end;

with SaveDialog1 do

begin

Title: ='Create file'; // сұ хбат терезе тақ ырыбы

if Execute then

begin

FileNameZap: =Filename;

AssignFile(FileZap, FileNameZap);

Rewrite(FileZap); //файлды жазу ү шін ашу

for i: =1 to n do

write(FileZap, mzap[i]); // файлғ а жазулар массивін жазу

end;

end;

end;

end;

// батырманың ө лшемінің ө згеруін басқ аратын батырма

end;

//батырманың ө лшемінің ө згеруін басқ аратын батырма

procedure TForm1.SpinEdit1Change(Sender: TObject);

var i, m: integer;

begin

SpinEdit1.Text: ='5';

m: =StrToInt(SpinEdit1.Text); // ө лшемге жаң а мә н меншіктеу

with StringGrid1 do

begin

RowCount: =m+1; // жолдар санын есептеу

if m> n then

for i: =n+1 to m do

begin

Cells[0, i]: =intToStr(i);

Cells[1, i]: ='';

Cells[2, i]: ='';

Cells[3, i]: ='';

Cells[4, i]: ='';

end;

end;

n: =m;

end;

//Open батырмасының процедурасы

procedure TForm1.BitBtnOpenClick(Sender: TObject);

var i: integer;

begin

with OpenDialog1 do

begin Title: ='Openfile'; // сұ хбат терезе тақ ырыбы

if Execute then

begin

FileNameZap: =FileName;

AssignFile(FileZap, FileNameZap);

Reset(FileZap);

n: =0; while not E of (FileZap) do

begin n: =n+1;

read(fileZap, Mzap[n]);

end;

SpinEdit1.text: =IntToStr(n);

StringGrid1.RowCount: =n+1;

for i: =1 to n do

with StringGrid1, MZap[i] do

begin

Cells[0, i]: =IntToStr(i);

Cells[1, i]: ='fio';

Cells[2, i]: =IntToStr(mat);

Cells[3, 0]: =IntToStr(phiz);

Cells[4, 0]: =IntToStr(chem);

end; clouseFile(FileZap); end; end;

BitbtnSort.Show; BitbtnSave.Show; end; end;

 

// мә ліметтерді мә тіндік файлда сақ тау процедурасы

procedure TForm1.BitBtnSaveClick(Sender: TObject);

var i: integer;

begin

with SaveDialog1 do

begin

if Execute then

begin

Filenametext: =FileName;

AssignFile(FileText, FilenameText);

Rewrite(Filetext);

for i: =1 to n do

with MZap[i] do

writeln(Filetext, i: 3, fio: 20, mat: 5, phiz: 5, chem: 5);

CloseFile(FileText);

end; BitbtnSort.Hide;

end;

end;

end.

 

9.1. –сурет. Файлды қ алыптастыруғ а арналғ ан форма терезесі

 

Ұ сынылатын ә дебиеттер: [1-9]

Бекіту сұ рақ тары:

 

1. Файл дегеніміз не?

2. Файлдық типтің қ анша тү рі бар?

3. Тізбекті кіру мү мкіндігі бар файл дегенді қ алай тү сіндіресіз?

4. Типтік файл дегеніміз не?

5. Типтік емес файл дегеніміз не?

6. Файлдармен орындалатын жұ мыс тү рлері қ андай?

7. Логикалық жә не физикалық файл дегеніміз не?

8. Файлды ашудың тү рлері қ андай жә не олар қ андай операторлармен орындалады?

9. Файлдармен жұ мыс істеуге арналғ ан қ андай процедуралар мен функциялар бар?

10. Файлдарды бейнелеу тә сілдерін атаң дар жә не ол қ алай жү зеге асырылады?

11. Файлды қ ұ ру жә не ашу процедуралары қ алай жазылады?

12. Бейнелеу объектілерін қ ұ ру ү шін қ андай функция пайдаланылады?

13. Мә ліметтерді программаның адрестік кең істігіне бейнелеу қ алай жү зеге асырылады жә не оны орындайтын функция қ андай?

14. Терезені бейнелеу ресурстарынан босату қ андай функцияның кө мегімен жү зеге асырылады?

15. Бейнелеу объектісі мен файлды жабу ү шін қ андай функция пайдаланылады?

16. Delphi ортасында файлдар жұ мысына негіз болатын класс қ алай аталады?

17. Ол кластың қ андай ә дістері бар? Сол ә дістерге сипаттама берің дер.

18. Топта оқ итын студенттер мә ліметтерінен тұ ратын файл жазуы бар. Қ ұ рылғ ан файлғ а тө мендегідей операцияларды қ олдану қ ажет:

1. Файлды белгісі бойынша ө су ретімен іріктеу.

2. Файлды белгісі бойынша кему ретімен іріктеу.

3. Файлды алфавиттік ретпен реттеу.

4. Топтағ ы оқ итын студент жігіттерден тұ ратын файл жазуын қ алыптастыру.

5. Топтағ ы оқ итын студент қ ыздардан тұ ратын файл жазуын қ ұ ру.

6. 1-2 курс студенттерінен файл жазуын қ ұ ру.

7. 4-5 курс студенттерінің файлын қ ұ ру.

8. Файлдан к–шы жазуды ө шіру.

9. Файлғ а жаң а жазу қ осу.

10. 5-курстағ ы студенттердің санын есептеп, тізімін экранғ а шығ арың дар.

11. Жасы 20-дан жоғ ары студент жігіттердің санын есептеп, экранғ а шығ арың дар.

12. 5-курс студенттері туралы барлық жазуды ө шірің дер.

К-шы жазуда тұ рғ ан студенттің туғ ан жылын ө згерту.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.018 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал