end;
8.2-listingda Davomidan yozish tugmasi uchun protsedura matni keltirilgan. U nomi Edit1 maydonida ko`rsatilgan faylni ochib, uning davomiga Memo1 da ko`rsatilgan ma`lumotlarni yozadi.
8.2-listing. Mavjud faylning davomida yozish.
procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile; fayl
fName: String[80];. faylning nomi
i: integer; begin
fName : Edit1.Text;
AssignFile(f, fName);
Append(f); faylni davomidan yozish uchun ochish
for I : 0 to Memo1.Lines.Count do
writeln(f, Memo1.Lines[i]);
Closefile(f);
MessageDlg('Ma`lumotlar quyidagi faylga qo`shildi: ' #13 Edit1.text, mtInformation,[mbOk],0);
end;
9.3. Fayllarni ochishdagi xatoliklar
Fayllarni ochishga uringanda bajarish vaqtidagi xatoliklar yuzaga kelishi mumkin. Masalan, disk yurituvchi hali ishga tayyor bo`lib ulgurmasdan (ehtimol disk qo`yilmagan yoki disk yurituvchi yopilmagan), diskdagi faylni ochishga harakat qilinishi mumkin. Yana ko`p uchraydigan hatolardan biri – mavjud bo`lmagan faylni ochishga urinishdan iborat.
Bunday xollarda ekranda kompilyatorning xatolik haqida axborot beruvchi dialog oynasi paydo bo`ladi (8.2-rasm):
8.2-rasm. Faylni ochishdagi hatolikka misol.
Dastur Delphi dan ishga tushirilgan)
Agar dastur Windows dan ishga tushirilgan bo`lsa, bu hatolik haqidagi axborot boshqacha ko`rinishda bo`ladi (8.3-rasm).
Fayllarni ochish vaqtidagi hatoliklarni nazorat qilish dastur zimmasiga yuklanishi mumkin. Bu amal IOResult (Input-Output Result — kiritish-chiqarish amalining natijasi) funksiyasi qiymatini tekshirish orqali bajariladi. Agar kiritish-chiqarish amali to`g’ri bajarilgan bo`lsa, IOResult
8.3-rasm. Faylni olishdagi hatolikka misol.
Dastur Windows dan ishga tushirilgan)
funksiyasi 0 ga, aks holda hatolik kodiga teng bo`ladi.
Dastur kiritish-chiqarish amali natijasini nazorat qila olishi uchun faylni ochish buyrug’idan oldin kompilyatorga {$I-} ko`rsatmasini berib qo`yish kerak. Bu ko`rsatma kiritish-chiqarish amallari bilan bog’liq hatoliklarni qayta ishlashni kompilyatorga ta`qiqlaydi va bu sohadagi boshqarishni dastur zimmasiga olganligini anglatadi.
Mavjud bo`lmagan faylni qo`shimcha ma`lumotlarni yozish rejimida ochishga urinish bo`lganda, yangi fayl yaratish rejimida (shu bilan hatolik bartaraf qilinadi) ochishni ta`minlaydigan algoritmga mos keladigan dastur parchasi quyidagicha yoziladi:
AssignFile(f,filename);
{$I-}
Append(f) Faylni davomida yozish uchun ochilmoqda
{$I}
if IOResult<> 0 Ochishda hatolik yuzaga kelsa
then Rewrite(f); faylni yangi fayl rejimida ochish
Natijada mavjud bo`lgan yoki yangi fayl ochiladi.
Namuna. Quyidagi dastur faylni yaratish va to`ldirish uchun mo`ljallangan. Har gal dastur ishga tushganda, uning dialog oynasi ochiladi (8.4-rasm). Uning maxsus oynalariga foydalanuvchi sana (Edit1 maydoni) hamda shu kungi havo temperaturasini (Edit2 maydoni) kiritadi. Qo`shib qo`yilsin tugmasi bosilganda bu ma`lumot faylga qo`shib qo`yiladi.
Do'stlaringiz bilan baham: |