Matn fayli. Matn fayli deb - ASCII kodlari hamda kengaytirilgan va boshqaruvchi kodlardan tashkil topgan faylga aytiladi. Matn fayllari satrlar bo‘yicha tashkil topgan bo‘lib, fayl oxiri deb nomlanuvchi maxsus koddan tashkil topgan bo‘ladi. Matnli fayl ixtiyoriy ma’lumotlarni (sonni, belgini, satrni) belgilar ketma-ketligi ko‘rinishda saqlaydi. Masalan, Paskal tilida yozilgan programma ham matnli fayl hisoblanadi. Undan tashqari ma’lumotlarni bir qismi satrlarga ham bo‘linishi mumkin. Satr oxirini alomati bo‘lib 13 kod hisoblanadi va u satrni o‘tkazish belgii (10 kod) bilan birlashtirilishi mumkin, matnli faylning oxiri “z”(26 kod) belgi bilan belgilanadi. Son, satr va mantiqiy qiymatlarni yozishda ular belgili ko‘rinishga o‘zgartiriladi, o‘qishda esa son va satrlar matnli ko‘rinishdan mashinaviy ko‘rinishga avtomatik ravishda o‘zgartiriladi.
Matnli fayllar bilan ishlashda faylli o‘zgaruvchini kiritish kerak:
var f: text;
va uni fizik fayl bilan assign protsedurasi orqali bog‘lash kerak, undan keyin faylni ochish mumkin. Shuni ta’kidlash kerakki matnli fayl bilan “file of char” turidagi turlangan fayl bilan bir xil emas.
Matnli faylni reset, rewrite yoki append(f) protseduralari orqali ochish mumkin, bunda oxirgi protsedura matnli f fayl oxiriga yozish uchun ochadi. Undan tashqari matnli faylni ochishdan oldin o‘qish-yozish amallari uchun buferning o‘lchamini quyidagi protseduralar orqali o‘rnatish mumkin:
settextbuf(f, nbuf, buf);
bu yerda f -matnli fayl nomi, buf - buferga mo‘ljallangan o‘zgaruvchining nomi, nbuf - buferning baytdagi o‘lchami.
Matnli va sonli ma’lumotlarni o‘qish va yozish quyidagi protseduralar yordamida amalga oshiriladi:
o‘qish: read(f,x), read(f,x1,x2,. . . ,xn) yoki satrni o‘tkazish bilan -readln(f,x), readln(f,x1,x2,. . . ,xn).
yozish: write(f,x), write(f,x1,x2,. . . ,xn) yoki satrni o‘tkazish bilan -writeln(f,x), writeln(f,x1,x2,. . . ,xn).
1 misol. Berilgan d1.pas
faylning elementlari yig‘indisi topilsin.
Program N1; {faylni o‘qish}
Var
f1:text;
s,x: real;
Begin
S:=0;
Assign(f1, ‘d1.pas’);
Reset (f1);
While not eof (f1) do begin
While not eoln (f1) do
begin
read (f1,x);
S:=s+x;
End;
Readln (f1); {yangi satrga o‘tish}
End;
Write(s);
Close (f1);
End.
2 misol. Berilgan a=234 va b=10,3 sonlarni d2.pas fayli ko‘rinishida yozing.
Program N2; {Faylni yozish}
Var
F2:text;
A: integer;
B: real;
Begin
A:=234; b:=10,3;
Assign(f2, ‘d2.pas’);
Rewrite (f2);
Write(f2,a:3, b:3:1);
Close (f2);
End.
3 misol. Berilgan d1.pas
satrlarining yig‘indisini, uning yoniga ustun ko‘rinishida yozib, yangi d2.pas fayli hosil qilinsin.
Program N3;
Var
f1, f2:text;
s,x: integer;
Begin
Assign(f1, ‘d1.pas’);
Assign(f2, ‘d2.pas’);
Reset (f1);
Rewrite (f2);
While not eof (f1) do begin
S:=0;
While not eoln (f1) do
begin
read (f1,x);
Write(f2,x:3);
S:=s+x;
End;
Write(f2,s:5);
Readln (f1);
End;
Close (f1);
Close (f2);
End.
Do'stlaringiz bilan baham: |