Кіріспе Өңдеу ұғымы Алгоритм ұғымы



бет9/11
Дата15.09.2017
өлшемі1,13 Mb.
#32899
1   2   3   4   5   6   7   8   9   10   11

Файлдың түсінігі


Файлдың түсінігіне кез-келген мәліметтердің жиынтығы жатады. Сонымен бағдарламадағы бастапқы мәліметті файл деп есептеуге болады. Файл нәтиже және бағдарлама болуы мүмкін.

Бағдарламалау кезінде тәжірибеде кейбір тапсырмаларды ішкі тасымалдау сақтау құрылғысында сақтау ыңғайлы. Осы жағдайда мәліметтер сыртқы файл түрінде рәсімделеді. Сыртқы тасымалдау құралы ретінде магниттік диск қолданылуы мүмкін.

Осы уақыттқа дейін ДК жадысына пернелер тақтасы арқылы енгізу арқылы ақпарат түсетін. Соған байланысты мәліметтердің бастапқысы, нәтижесі сақталмайтын. Қажет деп табылған есепті шешу кезінде барлық мәлімен жаңадан енгізілетін.

Сыртқы файлды құру магниттік дискіде үнемі ақпаратты сақтау осы файлдар арқылы іске асады. Ал бағдарламада осы файлдар бағдарламалаудың эффективті құралы болып табылады.



  1. Файлдың типі

Файлдың типін үш негізгі түрге бөлуге болады: тізбекті; тікелей мүмкіндікті файлдар; индекстілген файлдар;

Тізбектелген файлды тізбекті түрде оқуға болады. Бір мезгілде талап жасалса, тек қана бір файлдық элементі ғана оқылады. Тізбекті файл файлды тек қана басынан бастап қана өңдеп бастайды. Мысал, файлдағы анықталған орынды іздеп табу мүмкін емес.

Тікелей мүмкіндігі бар файлдар бөліктерге бөлінеді. Әр жазабаға адресі бойынша талап жасауға болады. Адрестер механизмін магниттік дискімен жұмыс жасаған жағдайда қолдануға болады.

Индекстелген файлмен жұмысты ұйымдастыру үшін міндетті түрде тікелей мүмкіндікті құралды талап етеді. Жазбаны адресі бойынша табуға болады, сонымен қатар мазмұны бойынша өрістің кілті арқылы, ол жазбаның құрамына енеді, табуға болады. Кілт болып ат, тіркеу нөмірі табылуы мүмкін, есеп нөмірі табылуы мүмкін. Әр нақтылы кілттің мәні үшін бір жазба сәйкес келуі керек.


  1. Файлдық типі анықтау

Файл – бір типті және бір ұзындықты тізбектелген компоненттен тұратын мәліметтердің құрылымдық типі. Әдетте файлдың компоненті болып жазба табылады. Файлдың типінің анықталуы file of тіркесімен басталады, осыдан кейін файлдың компонентінің типі көрсетіледі. Ол файлдағы мәліметті сақтап тұрады. Файлдың ұзындығы файлдың типімен анықталмайды.

Форматы:
Type

    <типтің атауы = file of < компоненті типі;

Var

    <идентификатор : <тип атауы;


Мысал №1.
Type

    Person = file of record

        FIO: string[20];

        Age: 0..90;

        Prof: string[30]

    end;


Var

    S1: Person;


Жазбадан тұратын файлды сипаттау үшін келесі формары және басқа да форманы қолдануға болады:
Type

    <компонент типі = record

        <өріс : <тип;

         . . .

        <өріс : <тип;

    end;


Var

    FV: file of < компонент типі;


Мысал №2.
Type

    Zapis = record

        FIO: string[20];

        Age: 0..90;

        Prof: string[30]

    end;


Var

    FV: file of Zapis;

    RV: Zapis;
Символық типтің файлы мәтіндік файл деп аталады. Мәтіндік файлдың компоненті болып жол табылады. Жолдың ұзындығы 0-ден 255-ке дейін ауысыуы мүмкін. Әр жол жолдың аяқталғандығын CR/LF жолы арқылы белгілі болады, файл УПР-Z файлдың соңын білдіреді.
Мәтіндік типтегі файлдық айнымалыны сипаттау үшін стандартты индентификатор text қолданылады
Форматы:

Var


    <идентификатор: text;

Мысал №3.


Var

    Document: text;



  1. Файлдармен жұмыс жасау үшін қолданылатын стандартты процедуралар мен функциялар




Процедуралар



Assign(FV, Str) - файлға атты меншіктеу. Файлдық айнымалы FV-ға STR мәні меншіктеледі.

Rewrite(FV) - жаңа файлды құру. Файлдың көрсеткіші позициямен орнатылады. (0 нөмірімен). Фйал жүктеу үшін дайындалады.

Reset(FV) - бар файл үшін бастапқы көрсеткішті орнату.

Read(FV, P) - FV файлынан p1, p2, p3, ..., pn мәндерін оқу.

Write(FV, P) – FV файлға p1, p2, p3, ..., pn мәндерін жазу.

Seek(FV, n) – FV файлға көрсеткішті n реттік нөмірімен орнату керек.

Flush(FV) – сектордың буферін тазалау керек.

Close(FV) – файлды жабу керек.

Erase(FV) –жабылған файлды жою..

Rename(FV, Str) – FV файлын STR-ға атын ауыстыру.

Truncate(FV) – көрсеткіштің ағымдағы орынынан бастап файлдың барлық компонентін жою және файлды жазбаға дайындау.
Функциялар
Eof(FV) – файлдың соңын тексеруші маркер. Функцияның мәні True мәніне тең, ал көрсеткіш файлдың соңғы компоненттінде орналасқан болса, онда False мәніне ие болады.

FilePos(FV) – компоненттің ағымдағы нөмірін анықтау керек. Компоненттің нөмірі нөлден басталады.

FileSize(FV) – файлдың ұзындығын анықтау керек.

IOResult(FV) – соңғы енгізу/шығару операциясының нәтижесінің қателігін тексеру. Функция қатенің нөмірін көрсетеді, ал егер қателік болмаса, онда 0-ді көрсетеді.

Турбо Паскальда файлдық жүйемен енгізу-шығару буфер түсінігі тығыз байланысқан. Мәліметті енгізу және шығару буфер арқылы іске асады. Буфер – бұл жадының аймағы, ол әр файл үшін бөлінеді. Файлды жазу үшін барлық ақпарат буферге жинақталады, сол жерде барлық буфер толғанша жинақталады. Осыдан кейін ғана барып немесе арнайы командадан кейін ақпаратты сақтау сыртқы құрылғыға жіберіледі. Файлдан оқу кезінде басында буфер оқылады, сонымен қатар мәліметтер қанша сұралса оқылмайды, қанша ақпарат буферге сияса сол ақпарат көлемі ғана оқылады.

Буферизация механизмі сыртқы құрылғымен ақпаратты тез және эффективті алмасы үшін мүмкіндік жасайды.

Файлмен жұмыс жасау үшін бағдарламада файлдық айнымалыны анықтап алу керек. TURBO PASCAL бағдарламалау тілі файлдық типтің үші түрін ажыратады: мәтіндік, компоненттік, типсіз файлдар.

М Ә Т І Н Д І К Ф А Й Л Д А Р
Паскаль тілінде ерекше орын алатын мәтіндік файлдар. Оның компоненті симолдық типтен тұрады. Мәтіндік файлды сипаттау үшін стандартты тип Тext анықталған:

var TF1, TF2: Text;


Мәтіндік файл жолдың тізбегінен тұрады, ал жолдар символдардың тізбегінен тұрады. Жолдар анймыланының ұзындығынан тұрады, әр жол жолдың соңы белгісімен аяқталады.

Жолдың соңы белгісімен EOLn(var T:Text):Boolean функциясы байланысқан, мұндағы Т – мәтіндік файлдың аты. Бұл функция TRUE мәніне ие болады, егер жолдың соңына барса, және FALSE мәніне ие болса, онда жолдың соңына жетпейді.

Мәтіндік файлмен жұмыс жасау операциясы, жоғарыда көрсетілгендерден басқа процедураға да талап жасау операторымен орындалады:

ReadLn(T) – жолды келесі жолдың басына дейін өткізеді;

WriteLn(T) - файлдың жолын аяқтайды. Мәтіндік файлмен жұмыс жасау үшін енгізу және шығару операторының кеңейтілген формасы пайдаланылады. Оператор
Read(T,X1,X2,...XK)
Келесі операторлар тобына эквивалентті
begin

Read(T,X1);

Read(T,X2);

...........

Read(T,XK)

end;
Мұндағы Т – мәтіндік файлдар, ал айнымалылар Х1, Х2,...ХК бүтін айнымалы болуы мүмкін. Айнымалы мәнін оқу кезінде файлдан олар мәтіндік түрден машиналық түрге түрленеді.

Оператор

Write(T,X1,X2,...XK)


Келесі операторлар тобына эквивалентті
begin

Write(T,X1);

Write(T,X2);

...........

Write(T,XK)

end;
Мұндағы Т – мәтіндік файл, бірақ Х1,Х2,...ХК айнымалылар бүтін, символдық, логикалы болуы мүмкін немесе жолдық болуы мүмкін. Айнымалының мәнін жазу кезінде файлда мәтіндік файлдың ішкі түріне түрленеді.

Мәтіндік файлға стандартты файлдар INPUT, OUTPUT жатады.

Жоғарыда келтірілген енгізу-шығару операторлары мәтіндік файлмен ақпарат алмастырудың кез-келген жағдай болып табылады. Сонымен қатар стандартты енгізу-шығару операторы INPUT, OUTPUT қолданылады.

Осы файлдармен жұмыс жасаудың келесі ерекшеліктері бар:

- осы файлдардың атаулары енгізу-шығару тізімінде көрсетілмейді;

- Reset, Rewrite және Close процедураларын қолдану стандартты файлға тыйым салынады;

- INPUT, OUTPUT файлдарымен жұмыс жасау EOLn функциясының әртүрлі жағдайда қолданытындығын көрсетеді.

TURBO PASCAL тілінде тек қана мәтіндік файлға қосымшы процедуралар мен функцияларды SetTextBuf, Append, Flush, SeekEOLn, SeekEOF қолдануға болады.

SetTextBuf( var f: Text; var Buf; BufSize: Word ) процедурасы f мәтіндік файлын енгізу-шығару буферін үлкейту немесе кішрейту үші қолданылады. Мәтіндік файл үшін буфердің өлшемінің мәні үнсіздік бойынша 128 байтқа тең болады. Буфердің көлемін үлкейту дискіге талап жасауды азайтады. Буфердің көлемін үлкейту файлды ашуға дейін өзгерту ұсынылады. Файлдың буфері Buf айнымалысы арқылы бірінші байттан басталады. Буфердің өлшемі міндетті емес BufSize параметрінде беріледі, ал егер осы параметр жоқ болса, онда буфер өлшемі Buf айнымалысының ұзындығымен анықталады.

Append( var f: Text ) процедурасы шығатын файлды арнйы ашу үшін қолданылады.

Flush( var f: Text ) процедурасы шығатын ашық тұрған файлға қолданылады.

SeekEOLn( var f: Text ): Boolean функциясы True мәнін қайтарады, егер жолдың соңына дейін тек қана пробел қалса қолданылады.

SeekEOF( var f: Text ): Boolean функциясы True мәнін қайтарады, егер жолдың соңына дейін толтырылған пробелдер қалса.




  1. Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   11




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

    Басты бет