Студопедия

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

Разделы сайта

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






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






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 МБайт). Жиілік пен жады қ аншалық ты кө п болса, уақ ыттың арасындағ ы айырмашылық та соғ ұ рлым ү лкен болады.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.