Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
paskal.pdf
Скачиваний:
89
Добавлен:
17.02.2016
Размер:
544.21 Кб
Скачать

3.5. ФАЙЛДАР Файл деп – сыртқы сақтау қүрылғысында белгілі бір атпен

жазылған информацияны айтады. Кез келген файлдың үш айырықша ерешеліктері бар.

Біріншіден, файлдың аты болғандықтан, программа бір уақытта бірнеше файлдармен жұмыс жасай алады.

Екіншіден, файл бір типті элементтер тізбегінен тұрады. Турбо Паскальда файл элементтері кез келген типі болуы мүмкін (файлдық типтен басқа).

Үшіншіден, файлдың ұзындыған шектеу жоқ, тек сыртқы жад құрылғыларының көлемі көтерсе болғаны.

Файлдық типтер және айнымалылар

Файлдық типті мына үш әдістің біреуімен беруге болады:

< аты> = File of <типі>;

{типі анықталған файл}

<аты > = TEXT;

{текстік файл}

< аты > = File;

{типі анықталмаған файл}

мұндағы: <аты > – файлдық типті (дұрыс идентификатор); File, of қызметші сөздер (файл, одан (из));

<типі> – Турбо Паскальдің кез келген типі (файлдардан басқа). TEXT – стандартты типті текстік файлдардың аты;

Файлдық типтердің синтаксистық диаграммасы мынадай:

file

of

типі

Файлдың программада Var бөлімінде сипатталу форматы Var

<идентификатор> : file of <элементтердің негіздік типі>; Мысалы

Var

F1 : file of Ineger;

{F1бүтін типті файл}

M : file of Char;

{M- символдық типті файл}

Файлдың программада Type бөлімінде сипатталу форматы Type

<типтің аты > = file of <элементтердің негіздік типі>;

Var

<идентификатор> : <типтің аты>; Мысалы

Type

File_Integer = file of integer; File_Char = file of char;

Fm = array[1..n] of real;

Var

99

F1 : File_Integer;

{F1файлының

элементтері

бүтін

сандар}

 

{F2

файлының элементтері символдар }

F2

: File_Char;

F3

: Fm;

{F3

файлының элементтері массивтер}

Ескерту: Төменгі мысалдарда <идентификатор> параметрі F – пен белгіленеді де файлдық айнымалы деп аталады.

Типі анықталған файлдардың элементтері ортақ атпен аталады, ал әр элемент жеке нөмірленеді. Бастапқы элемент 0-ден басталады.

Файлдардың элементтеріне өту файлдың көрсеткіші (буферлік айнымалы) арқылы жүзеге асырылады.

Әбір уақытта файлдың бір элементі ғана іске қосылады. Әр оқу немесе жазу нәтижесінде ағымды көрсеткіш келесі элементке жылжиды.

Оны графикалық түрде былай бейнелеуге болады:

Файл

элемент 0

элемент 1

...

элемент k

элемент k+1

 

 

 

 

 

көрсеткіш

Сол себепті оқу (жазу) процедураларында буферлік айнымалының мәні файлдың элементтері типтес басқа айнымалыға меншіктеледі.

Көбінесе файлдың элементтерін жазбалар (record) құрайды. Мысалы, студенттер туралы мәліметтерден: реті – N, аты-жөні – FIO, тобы – Gr тұратын файлдың сипаттауын келтірейік:

Type GF = file of record

N : integer; FIO : string[20]; Gr : real;

End;

Var Fstudent : GF; Student : record

N : integer; FIO : string[20]; Gr : real;

End;

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

100

Type GF = record

N : integer; FIO : string[20]; Gr : real;

End;

Var Fstudent : file of GF; Student : GF;

Мұңдағы Fstudent студенттер туралы мәліметтер жазылатын файл, Student файдың жеке элементін пайдалану мүмкіндігін беретін жазба.

Сыртқы файлды программамен байланыстыру

Программада пайдаланатын және жаңадан құрылатын файлдардың дисідегі орнын анықтайтын, арнайы сыртқы атаулары міндетті түрде көрсетілуі тиіс.

Турбо Паскаль тілінде файлдық типті айнымалыны сыртқы магниттік дискіде орналасқан нақты файлмен байланыстыратын Assign процедурасы қолданылады.

Форматы: Assign(<F>, < Name >);

мұндағы F – программада файлдық тип деп хабарланған, файлдық айнымалының аты (дұрыс идентификатор);

Name – файлдың толық атын, сыртқы құрылғыдағы орнын көрсететін, текстік өрнек.

Мысалы: Assign (F, ‘D:\mydir\myfile.doc’);

бұл процедура орындалу нәтижесінде, файлдық айнымалы F, түпкі каталог D дискісінде орналасқан myfile.doc файлымен байланыстырылады.

Ескерту: егер файл аты бос жол түрінде берілсе:

Assign(<F>, <‘’>), онда мәліметтердің алмасу бағытына байланысты, стантартты INPUT немесе OUTPUT файлдарымен байланысады.

Турбо Паскаль тілінде, файлды оқу үшін, жазу үшін, және де бір уақытта оқу және жазу үшін ашуды ұйымдастыруға болады.

Файлдан оқу

Файлдан оқу деген дискіде жазылған, сыртқы файлдан компьютердің жедел жадына деректерді енгізуді айтады.

Программада файлдан оқуды ұйымдастыру үшін мына процедура қолданылады:

Reset (<F>);

мұндағы F параметрі, кез келген типті, файлдық айнымалы; Файлды стандартты ашу мысалы:

101

Assign (F, ‘myfile.doc’); Reset (F);

Reset процедурасы орындалғанда дискідегі файл немесе логикалық диск, информацияны оқуға дайындалады. Нәтижесінде арнайы ағымдық көрсеткіш-айнымалысы, файлдың басына барып 0 элементін нұсқайды (схеманы қараңыз).

Егер жоқ файлды оқуға әрекет жасалса, онда операциялық жүйе қате туралы өзіне кірістірілген IORESULT функциясының 0-ге тең емес WORD типті мәнін программаға жібереді.

Мысалы, келесі програманың фрагменті, дискіде керекті файлдың бар немесе жоқ екенін анықтайды:

Var

F : file of

char;

Begin

 

Assign (F,’myfile.dat’);

{ŚI-}

{Отключаем контроль ошибок ввода-вывода}

Resey(F);

 

{ŚI+}

{Включаем контроль ошибок ввода-вывода}

If IOResult <> 0 then

…….

{Файл не существует}

Else

{ Файл существует }

…….

End.

 

Файлға жазу

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

Программада файлды жазуды ұйымдастыру үшін мына процедура қолданылады:

Rewrite(<F>);

Мұндағы, F файлдық айнымалы. Процедура орындылғанда F айнымалысымен байланысқан файл ашылып, жазуға дайындалады.

Мысал: Мәтіндік Work.txt атты файылын құруға арналған толық командалар тізбегін жазайық:

Var

F : text; Begin

Assign (F, ‘Work.txt ’); Rewrite(F);

Write (F, ‘Простой текстовый файл’);

102

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]