ОҚУ-Әдістемелік материалдар семей 2013. мазмұны



бет14/16
Дата25.04.2016
өлшемі7.2 Mb.
#89166
1   ...   8   9   10   11   12   13   14   15   16

Function FileOpen(const Filename:String; Mode:LongWord): integer; функциясының көмегімен ашылады.

Екі функцияда да FileName– файл аты, файлға кіру маршруты көрсетілуі мүмкін. Mode параметрі файлға кіру режимін анықтайды және төмендегі мәндердің біреуін ғана қабылдайды: fmOpenRead - тек оқу үшін, fmOpenWrite - тек жазу үшін, fmOpenReadWrite - жазу және оқу. Or операциясының көмегімен бұл тұрақтыларды бірнеше программалар файлына бірлесе кіру мүмкіндігін реттейтін төмендегі операторлармен топтастыруға болады:

fmShareExclusive - бірлесе кіру мүмкіндігі рұқсат етілмейді; fmShareDenyWrite - басқа программаларға жазуға рұқсат етілмейді; fmShareDenyRead - басқа программаларға оқуға рұқсат етілмейді; fmShareDenyNone - бірлесе кіру шектелмеген. Егер операция ойдағыдай орындалмаса екі функцияда құрылған (ашылған) файлдың дескрипторын береді немесе 0-ге тең.

Бейнелеу объектісін құру

Екінші кезеңде жадыда бейнелеу объектісі құрылады. Ол үшін төмендегідей функция пайдаланылады:

Function CreateFileMapping(hFile:Thandle;

lpFileMappingAttributes: PsecurityAttributes; flProtect,

dwMaximumSizeHeigh, dwMaximumSizeLow: Dword;

lpName:PChar):Thandle;

Мұндағы hFile – файл дескрипторы; lpFileMappingAttributes - құрылатын объектінің ұрпақ объект құра алатындығы жөніндегі құрылымды анықтайтын көрсеткіш; flProtect - файлды бейнелеу терезесінде қолданылатын қорғау типін анықтайды; dwMaximumSizeHeigh, dwMaximumSizeLow - сәйкес үлкен және кіші 32 разрядты файл өлшемі, егер ұзындығы 4 ГБайтқа дейінгі файлды бейнелеу қажет болса, онда – ноль мәні меншіктеледі, ал dwMaximumSizeLow – файл ұзындығы, егер екі параметрде нольге тең болса, онда бейнелеу терезесінің өлшемі файл өлшеміне тең; lpName - бейнеленетін объектінің атауы.

FlProtect параметрі – файлды көру терезесіне қолданылатын қорғау типін береді және ол төмендегі мәндердің бірін қабылдауы мүмкін:



PAGE-READONLY-файл тек оқу үшін (файл fmOpenRead режимінде ашылған немесе құрылған болуы мүмкін); PAGE-READWRITE - файлды оқуға және оған жаңа мәндер жазуға болады (файл fmOpenReadWrite режимінде ашылады); PAGE-WRITECOPY - файл жазу немесе оқу үшін ашылады, бірақ жаңартылған мәліметтер жадының жеке қорғалған бөлігінде сақталады (бейнеленген файлдар программалармен бөлінуі мүмкін), бұл режимде әрбір программа жадының жеке бөлігінде өзгерісті сақтайды; файл fmOpenReadWrite немесе fmOpenWrite режимінде ашылады; қорғаудың бұл типін Windows 95/98–де пайдалануға болмайды. Or операциясының екі гімен ашылады.

у және ашун жүзеге асырылады.

а мағынасы бар және мәліметтер блогының өлшемін береді.

көмегімен flProtect параметріне төмендегідей атрибуттарды жалғауға болады:

Sec_Commit - бейнелеуге арналған физикалық жадыны бөліп көрсетеді; SEC_IMAGE - файл образын атрибуттарды бейнелеу жөнінде ақпарат алынады; SEC_NoCaSHE - бейнеленетін мәліметтерге оперативті жадыдан орын бөлінбей, тікелей дискіге жазылады; SEC_RESERVE - физикалық жадыдан орын бөлінбей, бірден бөлім беттері резервтеледі.

Көру терезесін құру

Үшінші кезеңде көру терезесі құрылады, яғни мәліметтерді программаның адрестік кеңістігінде бейнелеу:



function MapViewOfFile(hFileMappingObject: Thande; dwDesiresAccess: DWord; dwFileOffSetHigh, dwFileiffSetLow, dwNumberBytes – ToMap:DWord):Pointer.

Мұнда hFileMappingObject -объектіні бейнелеу дескрипторы, dwDesiresAccess - мәліметтерге кіру тәсілін анықтайды және төмендегі мәндердің біреуін қабылдауы мүмкін: File_Map_Write - оқуға және жазуға мүмкіндік береді, бұдан CreateFillMapping функциясында PageReadONLY немесе Page_ReadWrite атрибуты пайдаланылуы мүмкін; File_Map_All_Access атрибутының жұмысы File_Map_Write жұмысымен бірдей; File_Map_Copy - мәліметтерді оқуға және жазуға болады, бірақ жаңартылған мәліметтер жадының жеке қорғалған бөлігінде сақталады; CreateFileMapping функциясында Page_Write атрибуты пайдаланылуы тиіс; dwFileOffSetHeigh, dwFileiffSetLow - файл басынан ығысатын сәйкес үлкен және кіші разрядтарды анықтайды және сол жерден бейнелеу орындалады; dwNumberBytesToMap - бейнелеу терезесінің ұзындығын анықтайды (0 – ұзындық файл ұзындығына тең).



Бейнелеу ресурстарын босату

Бейнеленген мәліметтерді пайдаланғаннан кейін терезені бейнелеу ресурстарын

Function UnMapViewOfFile(lpBaseAdress:Pointer):Bool;

функциясының көмегімен босату керек, оны шақыратын жалғыз параметр бірінші бейнеленген байттың адресінен тұруы тиіс, яғни ол MapViewOfFile функциямен шақырылатын адрес.

Бейнелеу объектісін және файлдың өзін жабу

Function CloseHandle(hObject:THandle)

функциясының көмегімен орындалады.

Файлдармен жұмыс істейтін объектілі модель

Delphi ортасында TStream абстрактылы класы пайдаланылады (мәліметтер ағыны), ол объектілермен жұмыс істегендегідей файлдар жұмысы үшін негіз болады. Объектілер жағдайында ақпарат тасымалдаушы дискілік файл, таспалық тасымалдаушы немесе оперативті жады болып табылады. TStream арнайы ұрпағында файлдық объектіге толық кіру мүмкіндігін ашатын Read, Write және Seek стандартты әдістері анықталған. Объект конструкторымен құрылып, деструкторымен өшіріледі.

Келесі мысалда Edit1.Text атауымен сақталған файл Edit2.Text файлына көшіріледі.

Procedure TForm1.CopyFileClick(Sender: TObject);

Var

Stream1,Stream2:TStream;



Begin

Stream1:=TFileStream.Create(Edit1.text, fmOpenRead or fmShareDenyWrite);

Try

Stream2:= TFileStream.Create(Edit2.text, fmOpenCreate or fmShareDenyRead);



Try

Stream2.CopyForm(Stream1, Stream1:Size);

Finally

Stream2.Free;



Finally

Stream1.Free;

End;
TStream абстрактылы Read класы Write және кілттік әдістерді хабарлайды, ол төмендегі операцияларды орындау үшін оның мұрагерлерінде жабылады:


  • TFileStream - файлдармен мәліметтер алмасу;

  • TSringStream - ұзын жолмен (жадыда) мәліметтер алмасу;

  • TMemoryStream - жадыдағы мәліметтермен алмасу;

  • TBLOBStream – BLOB типті мәліметтер өрісін оқу/жазу (Binary Large Object – үлкен екілік объект);

  • TWinSocketStream – OLE сокетті жалғанатын мәліметтермен алмасу;

  • TOLEStream – OLE форматыфндағы мәліметтермен алмасу.

Кез-келген мұрагер CopyForm әдісінің көмегімен басқа ағынның мазмұнын оқи

алады. Осындай тәсілмен, файлдық мәліметтерді жадыға орналастыруға немесе керісінше – жадыда орналасқан мәліметті дискідегі файлға жазуға болады.

Дәл осылайша TStream класынан басқа да пайдалы әдістер жиынтығы шығады, оның ішінде:


  • Seek - ағынның ағымдағы орнынан бастап, қажетті байт мөлшерін жібереді;

  • ReadBuffer - ағынға буферден қажетті байт мөлшерін оқиды;

  • ReadComponent - ағыннан компонент қасиетін оқиды;

  • WriteBuffer - берілген ұзындықтағы буфердегі мәлімет мазмұнын ағынға жазады;

  • WriteComponent - ағынға компонент қасиетін жазады.

Келесі BbRunClick оқиға өңдеушісі mmOutput редакторына bbRun батырмасының қасиетін шығарады;

Программаға түсініктеме. Алдымен компоненттің қасиеті MemSourceStream ағынына жазылады. Осылайша алынған екілік мәліметтер оқылатын түрге келу үшін ObjectBinarryToText процедурасы пайдаланылады, ол MemSourceStream ағынынан мәліметтерді түрлендіріп MemSourceStream ағынына орналастырады. Осы екінші ағындағы мәліметтерді mmOutput терезесіне шығарады.
ТАПСЫРМА:

Тапсырма №1. 100000 кездейсоқ нақты саннан тұратын дискілік файлды құратын программа мысалын қарастырайық (файлдың ұзындығын «массив ұзындығы» редакторының мәнін өзгерту арқылы таңдауға болады). “Test.dat” атты файл файлды жадыда бейнелеу жолымен құрылады – жады батырмасы және дәстүрлі тәсілмен файл батырмасы. Екі жағдайда да уақыты көрсетіледі (процессор – 400 МГц, жады – 64 МБайт). Жиілік пен жады қаншалықты көп болса, уақыттың арасындағы айырмашылықта соғұрлым үлкен болады.

Тапсырма №2.

Memo өрісіне мәтіндік файлдың мазмұнын шығаратын программа құру.



Тапсырма №3.

Күндік температура туралы ақпараттан тұратын, мәтіндік файл түрінде құрылған “Ауа райы” мәліметтер қорына мәлімет қосатын программа жазыңдар. Датаны енгізу үшін MonthCalendar компонентін пайдаланыңдар.



Тапсырма №4.

N aдамнан тұратын оқушылардың оқу үлгерімі жөніндегі тізімдегі мәліметті файлға жазатын және одан оқитын программа құрайық. Файлдың әрбір жазуы оқушының аты-жөнінен және үш пәннен: математика, физика, химия пәндерінен алған бағаларынан тұратын болсын. Сонымен қатар, жазулар алфавиттік ретпен сұрыпталып, мәтіндік файл түрінде сақталсын.



ТАПСЫРМАНЫ ОРЫНДАУҒА ӘДІСТЕМЕЛІК НҰСҚАУЛАР:

Тапсырма №1.

Unit Unit1;

Interfase

Uses


Windows, Messages, SysUnits, Classes, Graphics, Countrols, Forms, Dialogs, StdCtrls, ComCtrls, Spin;

Type


TForm1=class(TForm)

btMem:Tbutton;

btFile:Tbutton;

se:TSpinEdit;

Label:TLabel;

Pb:TProgressBar;

Label2:TLabel;

btMem:Tlabel;

btFile:Tlabel;

Procedure btMemClick (Sender:TObject);

Procedure btFileClick (Sender TObject);

Private {Private declarations}

Public {Public declarations }

End


Var

Form1:TForm1;

Implementation {SR*.DFM}

Procedure TForm1.btMemClick (Sender:TObject);

//Бейнелеу жолымен файл құру

Type


Real=^Real;

Var HfileHMap:Thandle;

AdrBase, AdrReal:PReal;

K:integer;

Fsize:Cordinal;

BegTime:TdateTime;

Begin

BegTime:=Time; //Жіберілу уақытын тіркейміз.



//ProgressBar-ны дайындаймыз.

Pb.Max:=se.Value;

Pb.Position:=0;

Pb.Show;


Fsize:=se.Value*SizeOf(Real);//Файл ұзындығы!

HFile:=FileCreate(‘test.dat’);//Файл құрамыз!

If Hfile=0 then //қате!

Raise Exception.Create(Файл құруда қате бар!)

Try//Файлды жадыда бейнелейміз.

HMap:=CreateFileMapping(HFile, Nill, Page_ReadWrite, 0, Fsize, Nill);

If Hmap=0 then //қате!

Raise Exception.Create(‘Файлы бейнелеуде қате бар’);

Try//көру терезесін құрамыз:

AdrBase:=MapViewOfFile(Hmap, File_Map_Write, 0, 0, FSize);

IfadrBase=Nil then //қате!

Raise Exception.Create(‘Файлы көру мүмкін емес’);

//Құру терезесін дұрыс шығару үшін бастапқы адресті сақтаймыз:

AdrReal:=AdrBase;

For k:=1 to se.Value do

Begin


AdrReal^:=Random; //Файлға жаңа санды орналастырамыз!

//Ағымдағы адресті шығарудан бұрын оны Integer немесе Cardinal типіне келтіру қажет!

AdrReal”=Pointer(Integer(AddReal)+SizeOf(Real));

LbMem.Caption:=IntToStr(k);

Pb.Position:=k;

Application.ProcessMessage;

End; //Көру терезесін бостамыз!

Unmap ViewofFile(AdrBase)

Finally //Бейнелеуден босатамыз

CloseHandle(HMap) End;

Finally //Файлды жабамыз!

CloseHandle(HFile) End; //Есептеу уақытын хабарлаймыз.

Pb.Hide;

LbMem.Caption:=TimeToStr(Time_BegTime) End;

Procedure Tform1.btFileClick(Sender.TObject);

//Файлды әдеттегі әдіспен құру

var F: File of Real; K: Integer;

BegTime:TdateTime;

R:Real; //Writе операторына арналған буферлік айнымалы

Begin


BegTime:=Time; //Уақытты іске қосамыз

//ProgressBar дайындалады:

Pb.Max:=se.Value;

Pb.Position:=0;

Pb.Show; //Файл құрамыз

AssignFile(F, ‘test.dat’);

Rewrite(F);

For I:=1 to se.Value do

Begin R:=Random;

//Write операторын шақыру параметрі тек //айнымалы болуы мүмкін

Write(F,R); LbFile.Caption:=IntToStr(k);

Pb.Position:=k;

Application.ProcessMessages;

End;


CloseFile(F); Pb.Hide;

LpFile.Caption:=TimeToStr(Time_BegTime)

End; End.
Тапсырма №2.

//мәтіндік файлды көру және жөндеу

unit rd_;

interface

uses

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



Dialogs, StdCtrls, Buttons;

Type


TForm1=class(TForm)

Memo1:TMemo;

Edit1:TEdit;

Button1:TButton;

Button2:TButton;

CheckBox1:TCheckBox;

Procedure Button2Click(Sender:TObject);

Procedure Button1Click(Sender:TObject);

Procedure Edit1KeyPress(Sender:TObject; var Key:Char);

Procedure CheckBox1Click(Sender:TObject);

Private {Private declarations}

Public {Public declarations}

End;

Var


Form1:TForm1;

Implementation {SR*.dfm} //жөндеу алаңында клавишты басу

Procedure TForm1.Edit1KeyPress (Sender:TObject; var Key: Char);

Begin


If Key=#13 // клавишы

Then Button1.SetFocus;

End;

//ашу батырмасын басу



Procedure TForm1.Button1Click(Sender:TObject);

Var f:TextFile; //файл

fName:String[80]; //файл аты

buf:String[80]; //жолды оқуға арналған буфер

begin

fName:=Edit1.text;



AssignFile(f, fName);

Try Reset(f); //файлды оқу үшін ашу

except

on EInOutError do



begin

ShowMessage(‘Файлға кіруде қате бар’+ fName);

Exit; end; end; //файлдан оқу

While not EOF(f) do

Begin

Readln(f, buf); //файлдан жолды оқу



Memo1.Lines.Add(buf); //Memo1 өрісіне жол қосу

End;


CloseFile(f); //файлды жабу

end; // Сақтау батырмасын басу

procedure TForm1.Button2Click(Sender: TObject);

var


f: TextFile; // файл

fName: String[80]; // файл аты

i: integer;

begin


fName:=Edit1.Text;

AssignFile(f, fName);

try

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



except

on ElnOutError do

begin

ShowMessage(‘Файлға кіруде қате бар’+fName);



exit;

end;


end;

// файлға жазу

for i:=0 to Memo1.Lines.Count do // Memo редакторындағы жолдар нөлден бастап нөмірленген

writeln(f, Memo1.Lines[i]);

CloseFile(f); // файлды жабу

MessageDlg(‘мәліметтер файлға жазылды’,mtInformation,[mbOk],0);

end;

// Тек оқу үшін ауыстырып қосқышын басу



procedure TForm1.CheckBox1Click(Sender: TObject);

begin


if not CheckBox1.Checked then

begin


Memо1.ReadOnly:=False;

Button2.Visible:=True

end

else


begin

Memo1.ReadOnly:=True; // жөндеуді шектеу

Button2.Visible:=False; // Сақтау батырмасы жұмыс істемейді

end;


end;

end.


Тапсырма №3.

unit pogoda_;

interface

uses


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

Dialogs, StdCtrls, ComCtrls;

Type

TForm1=class(TForm)



MonthCalendar1: TMonthCalendar;

Label1: TLabel;

Button1: TButton;

Edit1: TEdit;

procedure FormCreate(Sender: TObject);

procedure ButtonClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }



public

{ Public declarations }

end;

var


implementation

{ $R*.dfm }

const

DBNAME=’pogoda.txt’;



var

db:TextFile; //файл – мәліметтер қоры

//Жұмыстың басы. Мәліметтер қоры файлын ашамыз немесе құрамыз.

Procedure TForm1.FormCreate(sender:TObject);

var

r:integer; // пайдаланушының жауабы



begin

AssignFile(db,DBNAME);

Try

Append(db); // қате болу мүмкін



except

on E:EInOutError do

begin

r:=MessageDlg(‘(pogoda.txt)мәліметтер қоры файлы табылған жоқ.’+



#13+’Файл құру керек

?’,mtWarining,[mbOk,mbCancel],0);

if r=mrOK

then begin

Rewrite(db); //Файл құрамыз

ShowMessage(‘мәліметтер қоры файлы құрылады!’);

End

Else Application.Terminate; //Программа жұмысын аяқтау



End;

End;


Edit1.Enabled:=True;

Button1.Enabled:=True;

End;

//Температура өрісінде клавишты басу



Procedure TForm1.Edit1KeyPress(Sender:TObject; var Key:Char);

Begin


Case Key of

‘0’..‘9’,#8: ; // цифрлар және

#13: // клавишы

If Length(Edit1.Text)<>0

then Button1.SetFocus;

‘,’,’.’ begin // ондық нүкте

Key:=DecimalSeparator;

If Pos(DecimalSeparator,Edit1.Text) <> 0

then

then


else Key:=Char(0);

else Key:=Char(0); // қалған символдар рұқсат етілмейді

end;

end;


// Қосу батырмасын басу

Procedure TForm1.Button1Click(Sender: TObject);

begin

if Length(Edit1.Text)=0



then ShowMessage(‘Температураны енгіз’)

else begin

writeln(db,

FormatDateTime(‘dd/mm/yy’,MonthCalendar1.Date),

‘’,Edit1.Text);

Edit1.Text:=’’;

End;

End;


//Программа жұмысының аяқталуы

Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

CloseFile(db); //Файлды жабу



end;

end.


Тапсырма №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.



Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет