Begin
Assign(my_file,‘C:\TEXT\DATA.TXT’);
End.
Dasturda my_file o‘zgaruvchi “C” diskning “TEXT” katalogida joylashgan “DATA.TXT” fayli bilan bog’landi. “C:\TEXT\DATA.TXT” yozuv – faylning to’liq nomini anglatadi. Agar kerakli fayl joriy katalogda, ya’ni dastur bilan bitta katalogda bo’lsa, yuqoridagi dasturni quyidagicha yozish mumkin:
Var f:Text;
Begin
Assign(f,‘DATA.TXT’);
End.
Fayldagi ma’lumotlarni o‘qish yoki unga ma’lumotlar yozish uchun faylni ochilishi zarur. Matnli fayllarni bir vaqtning o‘zida ham o‘qish, ham yozish uchun ochib bo’lmaydi. Bu darsda fayllarni yozish uchun ochish va unga ma’lumotlar yozish darslikda keltirilgan misollar yordamida ko’rib chiqiladi.
O‘quvchilarga quyidagicha muammo qo’yiladi: Agar tashqi xotirada mavjud bo’lgan faylning davomiga ma’lumotlar qo’shish zarur bo’lsa nima qilish kerak? Muammoning sababi nimada? Dasturlashda qanday imkoniyat bo’lsa, bu muammo vujudga kelmaydi?
Muammoning sababi: Rewrite operatori tashqi xotirada ko’rsatilgan nomli yangi fayl hosil qiladi va uni yozish uchun ochadi. Agar shu nomli fayl tashqi xotirada avvaldan mavjud bo’lsa, u o‘chib ketadi. Dasturda tashqi xotiradagi faylni o‘chirib yubormasdan yozish uchun ochish imkoni bo’lganda bunday muammo kelib chiqmasdi. Paskalda shunday imkoniyatni Append operatori beradi. Darslikda keltirilgan misol tahlil etilib Append operatorining ishlashi tushuntiriladi.
Familiyangiz, ismingiz va yoshingizni saqlaydigan “fio.txt” faylini hosil qiluvchi dastur tuzing. Dastur quyidagicha bo’lishi mumkin:
Var fam, ism : String;
yosh : Integer; f : Text;
Begin
Assign(f, ‘fio.txt’) Rewrite(f);
Write(‘Familiyangiz : ’); ReadLn(fam); Write(‘Ismingiz : ’); ReadLn(ism);
Write(‘Yoshingiz : ’); ReadLn(yosh); WriteLn(f,fam);
WriteLn(f,ism); WriteLn(f,yosh);
Close(f);
End.
Quyidagicha savol-muammo qo’yamiz: Agar faylda qancha ma’lumot (necha satr yoki nechta sonli qiymat) borligi malum bo’lmasa nima qilish kerak? Dasturlashda qanday imkoniyat bo’lsa, bu muammo vujudga kelmaydi? Dasturda fayldagi ma’lumotlar tugaganini aniqlash imkoniyati bo’lsa bunday muammo kelib chiqmaydi. Paskalda shunday imkoniyatni eof (End Of File) funksiyasi beradi. U mantiqiy funksiya bo’lib, fayldagi malumotlar tugagan bo’lsa “rost” qiymat qabul qiladi.
E of funksiyasidan foydalanib yuqoridagi dasturni quyidagi ko’rinishga keltirish mumkin:
Var satr : String;
f : Text;
Begin
Assign(f, ‘fio.txt’); Reset(f);
Repeat
ReadLn(f, satr);
WriteLn(satr);
Until eof(f);
Close(f);
End.
Do'stlaringiz bilan baham: |