Датотеке

Улаз и излаз података треба да омогући комуникацију програма са спољним светом ради уношења података за обраду и приказивања или одлагања резултата. Изворишта података могу да буду улазни уређаји (тастатура) или датотеке на јединицама спољашње меморије. Одредишта података могу да буду излазни уређаји (екран или штампач) или датотеке на јединицама спољашње меморије.

У ширем смислу, улазни и излазни уређаји могу да се сматрају датотекама неограничене дужине. У случају улаза, крај низа података означава се неким специјалним управљачким знаком преко тастатуре који зависи од оперативног система.

Према начину смештања података, постоје две врсте датотека:

– текстуалне датотеке
– бинарне датотеке.

Текстуалне датотеке састоје се од низова знакова који су знацима за прелазак у нови ред (‘\n’) подељени у редове. Сви знаци у низу могу да се исписују на екрану или штампачу или имају јасно дефинисану управљачку функцију на тим уређајима (прелазак у нови ред, табулатор…)
У случају бројчаних података који се у меморији смештају у бинарном облику у току преноса примењује се конверзија тих података из бинарног облика у низ цифара у случају излаза, односно из низа цифара у бинарни облик у случају улаза.
Садржај текстуалних датотека може се приказати на екрану или одштампати на штампачу.

Бинарне датотеке састоје се од низова бајтова чији је садржај верна слика представљања података у меморији. У току преноса не примењује се конверзија већ се врши просто преношење података, бајт по бајт. Овакве датотеке могу да постоје само на јединицама спољашње меморије и не могу без конверзије да буду послате на излазне уређаје или добијене са улазних уређаја. Бројчане вредности се у бинарним датотекама складиште компактније него у текстуалним датотекама.
С обзиром да се тумачење и структура садржаја бинарних датотека мења у широким границама од датотеке до датотеке не постоје универзални услужни програми у саставу оперативних система за приказивање садржаја бинарних датотека који би водили рачуна о типовима података у њима. Због тога је за читање бинарних датотека и приказивање њиховог садржаја неопходно користити програм који ће вршити читање бинарне датотеке.

На вишим програмским језицима датотеке се деле на мање логичке целине које се називају записи или слогови. У једном приступању датотеци обично се преноси један запис, са или без бинарно-текстуалне односно текстуално-бинарне конверзије.

По организацији датотеке могу бити:

– секвенцијалне
– релативне
– индексне

Код секвенцијалних датотека приступ записима могућ је само по редоследу по којем су смештени у датотеци. Овај начин приступа назива се секвенцијални приступ.

Код релативних датотека могуће је приступати записима по произвољном редоследу на основу редног броја записа у датотеци. Овај начин приступа назива се директни приступ.

Код индексних датотека могуће је приступити записима по произвољном редоследу на основу садржаја дела записа. Део записа за идентификовање назива се кључ, па се овај начин приступања назива приступ помоћу кључа.

У језику C постоје само секвенцијалне датотеке које су по структури низ бајтова без икакве финије поделе (на слогове). Зато се у литератури за њих користи термин „ток“.
Подела текстуалних датотека у редове је логичка, а не физичка организација. Функције за улаз не реагују посебно кад наиђе знак ‘\n’, а ни функције за излаз никада аутоматски не умећу тај знак. Према томе, и текстуалне датотеке су, у ствари, само дугачки низови знакова (бајтова).
У језику C постоји рудиментни облик директног приступа подацима, који се своди на могућност позиционирања на одређени бајт унутар датотеке. После тога се читање или писање врши секвенцијално, почев од тог бајта.
Евентуално парцелисање датотеке у слогове, програмер мора сам да врши. Мора, такође, експлицитно да води рачуна о тој подели при сваком позиционирању унутар датотеке. Нема начина да се открије неусаглашеност између уписа и читања података.

При раду са датотекама постоје следеће радње:

– отварање датотеке
– приступ датотеци
– испитивање стања датотеке
– затварање датотеке.

Отварање датотеке служи за успостављање везе програма са физичком датотеком, на основу имена датотеке. Тада се у меморији ствара одређена структура података, која омогућава ефикасан приступ датотеци у току рада. Та структура садржи и одређене податке о тренутном стању датотеке (нпр. тренутну позицију приступа у датотеци)

Приступом датотеци остварује се пренос података у датотеку (уписивање) или из датотеке (читање) са или без конверзије у току преноса

Испитивањем стања датотеке могу да се добију информације о евентуалним грешкама које су настале у току преноса података

Затварање датотеке је завршна радња, којом се раскида веза програма са физичком датотеком. Том приликом поништавају се структуре података створене приликом отварања датотеке.

Advertisements

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се /  Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се /  Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се /  Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се /  Промени )

w

Повезивање са %s