Mətn faylları ilə işləmək üçün beş əməliyyatı yerinə yetirmək lazımdır:
1. Faylın təsvir edilməsi. Proqramda
olan hər bir obyekt kimi, mətn faylı da isti-
fadədən öncə təsvir olunmalıdır. Fayl
var
bölümündə təsvir edilir və bu nun
üçün
text
açar sözündən istifadə olunur. Məsələn,
var f1, f2: text;
yazılışı
f1
və
f2
-nin mətn faylı olduğunu bildirir. Bu halda
f1
və
f 2
-yə
fayl
dəyi şənləri də deyirlər.
2. Təsvir olunmuş faylın xarici daşıyıcıda olan konkret faylla əla qə lən dir -
ilməsi. Diskdə saxlanılan fayla müraciət etmək üçün proqrama həmin faylın
adını və onun hansı qovluqda (kataloqda) saxlandığını bildirmək lazımdır.
Başqa sözlə, proqram faylın tam adını bilməlidir. Bunun üçün Pascal dilində
Assign
proseduru nəzərdə tutulub. Məsələn,
C
diskində
ALTAY
qov luğunda
sax la nı lan
in.txt
faylını
f1
fayl dəyişəninə bağlamaq üçün proq ramda
Assign(f1, ‘c:\ALTAY\in.txt’);
proseduru göstərilməlidir. Əgər yalnız faylın adı göstərilibsə,
onda Turbo
Pascal nəzərdə tutur ki, fayl proqramın yerləşdiyi qovluqdadır. Məsələn,
Assign(f2, ‘out.txt’);
proseduru proqram qovluğunda yerləşən
out.txt
faylını
f2
fayl dəyişəninə
bağ layır.
Assign
proseduru faylın gerçək adıyla işləyən yeganə funksiyadır.
Qalan funksiyaların hamısı fayl dəyişənindən istifadə edir. Bu səbəbdən proq -
ramçılar
f1
-ə faylın
daxili adı,
c:\ALTAY\ in.txt
-yə
isə onun xa rici adı deyirlər.
3. Faylın oxuması, yaxud yazılması üçün onun açılması. Proqramın mətn faylı
ilə ma ni pulyasiya edə bilməsi üçün həmin fayl giriş, yaxud çıxışa hazırlanma -
lıdır, başqa sözlə, fayl açılmalıdır. Mətn faylı eyni zamanda həm giriş, həm də
çıxış üçün açıla bilməz. Yəni verilənlər mətn faylından oxunursa,
siz nəticələri
həmin fayla yaza bilməzsiniz. Mətn faylını açmaq üçün Pascal dilində
Reset_prose-_duru_faylın_oxunmasına_başlamazdan_əvvəl_çağırılmalıdır._Rewrite'>Reset_və_Rewrite_prosedurları_nəzərdə_tutulub._Reset_(f1);_1._PASCAL_proqramlaşdırma_dili'>Reset
və
Rewrite
prosedurları nəzərdə tutulub.
Reset(f1);
1.
PASCAL
proqramlaşdırma dili
57
58
Bu
prosedur
f1
fayl dəyişəni ilə əlaqələndirilmiş faylı proqrama daxil edilmək
üçün hazırlayır. Bu zaman cari mövqe göstəricisi faylın başlanğıcına keçir.
Cari mövqe göstəricisi emal olunacaq növbəti simvolu göstərir.
Reset
prose-
duru faylın oxunmasına başlamazdan əvvəl çağırılmalıdır.
Rewrite(f2);
Bu prosedur
f2
fayl dəyişəni ilə əlaqələndirilmiş faylı proqramdan çıxışa veri -
ləcək verilənləri qəbul etmək üçün hazırlayır. Əgər diskdə göstərilən fayl ol -
mazsa, həmin ad altında yeni boş fayl yaradılacaq. Diskdə göstərilən fayl artıq
möv cuddursa, o, boşaldılacaq və cari mövqe göstəricisi faylın başlanğıcına ke -
çəcək.
4. Verilənlərin fayla yazılması, yaxud fayldan oxunması. Verilənləri mətn
faylından oxumaq üçün
ReadLn
prosedurundan istifadə etmək olar. Bu prose-
dur klaviaturadan daxil edilən verilənləri necə emal edirsə, mətn faylının hər
bir sətri ilə də elə işləyir.
ReadLn(f1, n);
proseduru
f1
giriş faylından
verilənləri oxuyur və
n
dəyişəninə yazır. Faylda iki
ardıcıl elementi birdən oxuyub,
a
və
b
dəyişənlərinə yazmaq üçün
Read(f1, a, b);
prosedurundan istifadə etmək olar.
Verilənləri ekrana çıxarmaq üçün
WriteLn
və
Write
prosedurları ilə artıq ta -
nışsınız. Bu prosedurlardan verilənləri mətn faylına yazmaq üçün də istifadə
edilir.
WriteLn(f2, n);
proseduru
n
dəyişəninin
qiymətini
f2
faylına yazır. Yeni verilənlər fayla
növbəti sətirdən yazılacaq.
Write(f2, a, b);
proseduru
f2
faylına
a
və
b
ədədlərini yazır və növbəti yazı həmin sətirdən
davam olunacaq.
59
5. Faylın bağlanması. Giriş, yaxud çıxış faylı ilə işi bitirdikdən sonra diskdəki
faylla proqram arasında əlaqəni kəsmək lazımdır. Başqa sözlə, açıq
fayllar
bağlanmalıdır. Bunun üçün Turbo Pascalda
Close_proseduru_nəzərdə_tutulub._Close_(f1);_Close_(f2);_Nəzərə_alın_ki,_Close'>Close
proseduru nəzərdə tutulub.
Close(f1);
Close(f2);
Nəzərə alın ki,
Close (f1, f2);
yazılışı düzgün deyil –
hər bir fayl ayrıca
bağlanmalıdır!
İndi fayllarla işləmək üçün iki misala baxaq. Birincidə iki ədəd fayla yazılır,
ikinci misalda isə həmin ədədlər fayldan oxunur və ekrana çıxarılır.
program P1;
var
f: text;
{Fayl elan olunur}
n: Integer;
begin
Assign(f,‘file1.txt’);
{f faylı diskdə olan file1.txt
faylı ilə əla qələndirilir}
Rewrite(f);
{f faylı yazılmaq üçün açılır}
n := 7;
WriteLn(f, n);
{n dəyişənin qiyməti fayla yazılır}
WriteLn(f, 5);
{5 ədədi fayla yazılır}
Close(f);
{Fayl bağlanılır}
end.
-----------------------------------------------------
program P2;
var
f: text;
{Fayl elan olunur}
n: Integer;
begin
Assign(f,’file1.txt’);
{f faylı diskdə olan
file1.txt
faylı ilə əla qələndirilir}
1.
PASCAL
proqramlaşdırma dili
Reset(f);
{f faylı oxunmaq üçün açılır}
ReadLn(f, n);
{Birinci ədəd n dəyişəninə oxu nur}
WriteLn(n);
{n dəyişəninin qiyməti (7 ədə
di)
ekrana çıxarılır}
ReadLn(f, n);
{İkinci ədəd n dəyişəninə oxunur}
WriteLn(n);
{n dəyişəninin qiyməti (5 ədə di)
ekrana çıxa rı lır}
Close(f);
{Fayl bağlanılır}
end.
Sonda fayllarla işləmək üçün tez-tez istifadə olunan bir neçə funksiya ilə də
tanış olaq.
Mətn faylına informasiyanın artırılması. Mətn fayllarının sonuna infor-
masiya artırmaq imkanı da nəzərdə tutulub. Bunun üçün faylı
Rewrite
prosedu-
ru
ilə deyil,
Append
proseduru ilə açmaq lazımdır.
Append(
);
Bu prosedur çağırıldıqdan sonra fayl yazılış üçün açılır, ancaq
Rewrite
prosedurunda olduğu kimi, fayldakı mövcud informasiya silinmir. Cari mövqe
göstəricisi faylın sonuna keçir və deməli, yazılan informasiya faylın sonuna əlavə
olunur.
Misal olaraq yuxarıdakı
P1
proqramı vasitəsilə yaradılan
file1.txt
faylına
yeni yazı əlavə edək:
program P3;
var
f: text;
begin
Assign(f,’file1.txt’);
Append(f);
WriteLn(f, 9);
Close(f);
end.
60