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

Close (F); End.

Файлды толықтыру

Бұрын жазылған текстік файлды ашып, толықтыру үшін стандартты Append процедурасы қолданылады:

Append (<F>);

Процедура орындылғанда, ағымды көрсеткіш файлдың соңына орналасып, текстік файлға жаңа жолдар қосу мүмкіндігін береді.

Файлдардық процедуралар және функциялар

Close (<F>) – процедурасы ашылған файлды жабады. Бірақ процедура орындалғанда, Assign жасаған, файлдық айнымалымен сыртқы файл арасындағы байланыс жойымайды.

RENAME (<F>, <жаңа аты>) – процедурасы файлдың атын өзгертеді. Мұндағы <жаңа аты> – файлдың жаңа аты жазылған жолдық өрнек.

ERASE (<F>) – процедурасы жабылған файлды жояды. Eof(<F>) : Boolean – логикалық функциясы файлдың соңын

табады. Егер F файлының элементтері түгелімен оқылып, көрсеткіш файлдың соңында тұрса, фунцияның мәні True, әйтпесе False болады.

Төмендегі программа үзінділерінде файлдарға мәліметтер жазу және оқу жолдарын көрсетейік:

Rewrite(F); For i:= 1 to 100 do

Begin j := sqr (F); Write (i,j) end;

мұнда алғашқы 100 натурал сандардың квадраттары F файлына жазылады;

Reset(F); s := 0; While not(eof) do Begin read (F,t); s :=sqrt(t) + s end;

мұнда циклдік оператор F файлының элементтерін біртіндеп оқып, олардың квадраттарының қосындысын көрсеткіш файлдың соңына шықанша есептейді.

1-ші есеп: Бірде де біреуі 0-ге тең емес бүтін сандар файлын Dan1.Dat атымен құрайық.

Шешімі: Ең алдымен Assign процедурасымен файлдық айнымалыны, нақты файлмен «байланыстырайық». Жазу үшінRewrite процедурасымен файлды ашамыз.

0-ді енгізу – сандарды енгізудің аяғы болады. Сондықтан программа мынадай түрде құрылуы мүмкін:

Program Examp_1;

Var F: File Of Integer;

Begin

103

Assign(F, ‘a:dan1.dat’);

{сыртқы файлмен байланыстыру}

Rewrite(F);

{жазу үшін файлды ашу }

Writeln(‘конец ввода чисел-0’)

Repeat

{0 болғанға дейін }

Writeln(‘’)

{санды клавиатурадан енгізу}

Readln(n);

{егер енгізілген сан 0-ге тең емес болса, онда оны F} {файлының сол жолына жазылады}

If n <> 0

Then

Wtite(F, n);

Until n = 0;

{егер 0 енгізілсе, файлға жазу}

 

 

{аяқталады}

Close(F);

 

{файлды жабу}

End.

2-ші есеп: Студенттер туралы мәліметтерді файлға жазып, кесте түрінде экранға беретін программа құру керек.

Программаны мәліметтерді файлға жазу (Fwrite), файлдың элементтерін оқып, өңдеу (Fread) процедураларын құрып, қажетінше біреуін таңдайтындай етіп жазайық.

Program Fstudent;

Type G = Record N: integer;

FIO : string [20]; Gr : real;

End;

 

 

 

Var Fstudent : file of

G;

 

 

Student : G; i : integer;

 

 

Procedure Fwrite;

{файлға мәліметтер жазу прцедурасы-}

Begin

{нан шығу шарты: R=9999}

Rewrite (Fstudent);

 

 

With Student do

 

 

While true do

 

 

 

Begin

 

 

 

Write (‘Номер

?’);

Readln(N);

If R=9999 Then Begin

 

 

Close(Fstudent); Exit

 

 

End;

Write (‘Ф И О

?’); Readln(FIO);

Write (‘Группа

?’);

Readln(Gr);

Write(Fstudent, Student)

Procedure Fread;

End;

 

{Файлдың элементтерін оқып}

104

Begin

{экранға шығу процедурасы}

Reset (Fstudent);

 

With Student do

While not Eof (Fstudent) do

Begin

Read(Fstudent, Student);

Write(N:4, FIO:20, Gr:4);

End;

Close(Fstudent);

End;

Begin

Assign(Fstudent, ‘A:\ Student.doc’);

Write (‘Запись файла – 1, читать – 2’); Readln(i); Case i do

1 : Fwrite;

2 : Fread;

End;

End.

Мәтіндік файлдар

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

Мәтіндік файлдар стандартты Text типті файлдық айнымалымен байланыстырылады.

Мәтіндік файл құрылу процессінде әр жазбаның (жолдың) аяғында EOLN (End Of Line-конец строки), ал әр бір файл аяғында- EOF (End Of File-конец файла) арнайы белгілері қойылады.

EOLN- ASCII кодтау тізбегінен – #13 (CR) және #10(LF); EOF- коды #267

Read, Readln, Write, Writeln – процедуралары жазбалармен мәлімет алмасуға қолданылады.

Бұл процедуралардың <F> файлдық айнымалысы, арқылы кез келген файлды көрсетуге болады. Егер бірінші параметр көрсетілмесе, онда қолданылатын файл стандартты Input (Output) файл болып есептеледі.

Read(<F>, <енгізу тізімі>)

Readln( <енгізу тізімі>) – енгізу процедуралары символдарды, жолдарды, сандарды енгізуді ұйымдастырады.

Мұндағы <енгізу тізімі> – бір немесе бірнеше Char, String және сандық типті айнымалылар тізбегі болуы мүмкін.

Write(<F>, <енгізу тізімі>)

105

Write( <енгізу тізімі>) – шығару процедуралары символдарды, жолдарды, сандарды текстік файлға шығаруды ұйымдастырады.

Мұндағы <шығару тізімі> – бір немесе бірнеше Char, String, Boolean және сандық типті өрнектер тізбегі болуы мүмкін.

EOLN(<F>) – логикалық функциясы жолдың соңын табады. Егер жол соңы табылса True мәнін қайтарады, әйтпесе False.

Мысал: Example.pas текстік файлының бірінші жолынан ұзындығы алты символ тізбекті оқу керек.

Program Examp_St;

 

Var

 

F : text;

 

St : string[6];

 

Begin

{бұл файлың болуы қажет}

Assign(F, ‘Example.pas’);

Reset(F);

 

While not Eoln(F) do

{жолдың аяғын тексеру}

Begin

 

Read(F, St);

{экранға шығару}

Writeln((‘St = ‘, St);

End;

 

Readln(F);

{келесі жолға өту}

Close(F);

{файлды жабу}

End.

 

Бақылау сұрақтары

 

1.Жалпы, файл дегеніміз не?

2.Турбо Паскаль тілінде файлды деректердің ең бір іргелі құрылымы деп сануға қандай ерекшеліктері бар?

3.Файлдармен қандай амалдар жасауға болады?

4.Файлды қалай жазуға болады? Қандай процедуралар және функцияларды қолданылады?

5.Файлдан оқуды қалай ұымдастырылады?

6.Қандай процедуралар қолданылады?

7.Файлдық айнымалы не үшін қолданылады?

8.Reset және Rewrite процедураларының айрмашылықтары

қандай?

9.Close процедурасы не істейді?

10.Логикалық Eoln және Eof функцияларының қажеттілігі қандай?

11. Мәтіндік файл дегеніміз не? Ерекшелігі неде? 12.Мәтіндік файлға қалай жаңа жолдар қосуға болады?

Есептер

106

1.

Элементтері нақты сан болып келетін файл құру керек:

1)

элементтерінің көбейтіндісін;

2)

элементтерінің квадраттарының қосындысын;

3)

модульдерінің қосындысын және элементтерінің квадрат-

тарының қосындысын;

4)

файлдың соңғы элементін.

2.

Файлдың элементтері нақты сан болып келген. Табу керек:

1)элементтерінің ең үлкен және ең кіші мәндерінің қосындысын;

2)бірінші және соңғы элементтерінің қосындысын.

3.Файлдың элементтері натурал сандар. Табу керек: 1) жұп сан болатын элементтерінің санын; 2) екі еселенген тақ сан болатын элементтерінің санын.

4.Символдық F файлы берілген. Осы файлдың көшірмесін G файлына алу керек.

5.Жолдардан тұратын мәтіндік файл берілген. Табу керек:

1)жолдардың санын;

2)бірдей символмен басталатын және аяқталатын жолдардың

санын;

3)ең қысқа жолдарды;

4)симметриялық жолдарды.

107

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