1.5. Faylni yozish uchun ochish Faylga yozish uchun uni avval ochish kerak. Agarda yaratiluvchi faylni hosil qiluvchi dastur avval ham ishlatilgan bo’lsa, u holda diskda ishning natijaviy fayli mavjud bo’lishi mumkin. Shuning uchun dasturchi eski dasturga qanday kirish ni tashkil qilib olishi kerak: eski ma’lumotlarni yangisiga almashtirish kerakmi yoki eskisiga yangi ma’lumotlarni qo’shish kerakmi? Eski fayldan foydalanish uslubi faylni ochish vaqtida aniqlanadi.
Quyidagi uslub bilan ochilgan faylga ma’lumotlarni yozish mumkin:
ustidan yozish (yangi fayl eskisini ustidan yoziladi va natijada eski fayldagi axborotlar yo’qotiladi)
joriy faylga yangi ma’lumotni qo’shish
yangi faylni yaratish yoki mavjud faylni yangisi bilan almashtirish uchun Rewrite(f) protsedurasiga murojaat qilinadi. Bu yerda f - TextFile tipidagi faylli o’zgaruvchi.
Mavjud faylga yangi ma’lumotlarni qo’shish uchun esa Append(f) protsedurasiga murijaat qilishga to’g’ri keladi. Bu yerda f - TextFile tipidagi faylli o’zgaruvchi.
4.1-rasmda matnli faylga ma’lumot yozish yoki qo’shish dasturining muloqot oynasi keltirilgan.
4.1-rasm. 4.1-lisitngda esa Yozish tugmasini bosish bilan ishga tushuvchi protsedura keltirilgan. U yangi faylni yaratadi yoki joriy faylni yangisi bilan almastirib faylga Memo1 maydonidagi matnni yozadi.
Yaratiluvchi faylning nomini Edit1 maydoniga kiritish kerak.
4.1-listing. procedure TForm1.Button1Click(Sender: TObject);
var
f: TextFile; // fayl
fName: String[80]; // fayl nomi
i: integer;
begin
fName := Edit1.Text;
AssignFile(f, fName);
Rewrite(f); // faylni yangitdan yaratish
// faylga yozish
for i:=0 to Memo1.Lines.Count do // satrlar noldan raqamlanadi
writeln(f, Memo1.Lines[i]);
CloseFile(f); // fayni yopish
MessageDlg('Ma`lumot faylga YOZILDI !!!',mtInformation,[mbOk],0);
end;
4.2-listingda esa qo’shish tugmasi bosilganda ishga tushuvchi protsedura keltirilgan. Bunda mavjud faylga Memo1 maydonidagi ma’lumotlar qo’shiladi.
4.2-listing. procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; // fayl
fName: String[80]; // fayl nomi
i: integer;
begin
fName := Edit1.Text;
AssignFile(f, fName);
Append(f); // qo'shish uchun ochish
// faylga yozish
for i:=0 to Memo1.Lines.Count do // satrlar noldan raqamlanadi
writeln(f, Memo1.Lines[i]);
CloseFile(f); // faylni yopish
MessageDlg('Ma`lumotlar faylga QO`SHILDI',mtInformation,[mbOk],0);
end;