Студопедия

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

КАТЕГОРИИ:

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






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


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

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