Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Тапсырма №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-курс студенттері туралы барлық жазуды ө шірің дер. К-шы жазуда тұ рғ ан студенттің туғ ан жылын ө згерту.
|