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