AMALIY MASHG’ULOT. FAYLLAR BILAN ISHLASH. MUL’TIMEDIA ILOVALARI.

Fayl deb kompyuter tashqi xotarasining nomlangan soxasiga aytiladi va uning uchta xarakterli xususiyatlari mavjud. Birinchidan, uning nomi mavjud bulib, bu nom dasturda foydalaniladi. Ikkinchidan uning kompponentlari bir tipga mansub va bu fayl tipidan boshqa barcha tiplar bulishi mumkin. Uchinchidan yangi yaratiluvchi faylning uzunligi haqida uning e’lon qilish vaqtida “fikr yuritilmaydi” va bu faqat tashqi xotira elementining xajmiga bog’liq.

Fayl tipi quyidagi uch yo’llarning biri bilan yaratiladi:

<nom>=file of<tip>; <nom>=TextFile; <nom>=File;

Bu yerda <nom>- fayl tipining nomi (to’g’ri nomlangan identifikator), file, of xizmatchi so’zlar, <tip> bu fayl tipidan boshqa barcha tiplar.

Misol: Type

   Product=record          Name:String; Code:Word;End;

 Text80=file of String [80];

Var

  F1: File of Char;         F2: TextFile; F3: File;            F4: Text80;

 F5: File of Product;

Fayllarni e’lon qilish usullariga ko’ra, ularni uch turga ajratish mumkin:

  • tiplashtirilgan fayllar(File of … bilan beriladi, yuqoridagi misolda, F1, F4, F5 );
  • matnli fayllar( TextFle tipi bilan aniqlanadi, yuqoridagi misolda, F2);
  • tiplashtirilmagan fayllar(File tipi bilan beriladi, yuqoridagi misolda, F3);

Faylning turi uning saqlanish usulini aniqlaydi va umuman Delphida oldindan yaratilgan faylni nazorat qilish vositalari mavjud emas va bu vazifani dasturchi o’z zimmasiga olishi lozim. Fayllar bilan ishlash faqat faylni ochish prosedurasi bajarilgandan so’ng bajarilishi mumkin. Bu odindan e’lon qilingan fayl o’zgaruvchisini yaratilgan yoki yaratilishi lozim bo’lgan fayl nomi bilan bog’lash prosedurasi bo’lib, undan so’ng fayldan o’іish yoki unga yozish yo’nalishi beriladi.

AssignFile (var F, FileName: String) prosedurasi fayl o’zgaruvchisi F-ni FileName –fayl nomi bilan boІlaydi.

AssignFile (<fayl o’zgaruvchisi >,< fayl nomi >);- bu proseduraning umumiy ko’rinishi bulib, bu yerda fayl o’zgaruvchisi - dasturda e’lon qilingan fayl tipidagi o’zgaruvchi, fayl nomi esa, fayl nomini yoki ungacha bo’lgan yo’lni ifodalovchi matn. Fayl inisializasiyasi deb, bu faylga ma’lumotlarni jo’natish yoki undan olish yo’nalishiga aytiladi.

Faylni o’qish uchun fayl Reset prosedurasi yordamida inisializasiya qilinadi va bu proseduraning ko’rinishi quyidagicha:

Reset (<fayl uzgaruvchisi >);

Izoh: fayl o’zgaruvchisi –avval AssignFile prosedurasi yordamida mavjud fayl bilan bog’langan bo’lishi lozim.

Bu prosedura bajarilishi natijasida fayl o’qish uchun tayyorlanadi va natijada maxsus ko’rsatgich bu faylni boshiga, ya’ni 0-tartib nomerli komponentni ko’rsatib turadi.

Delphi dasturlash tilida Reset prosedurasi yordamida ochilgan tiplashtirilgan fayllarga Write prosedurasi bilan murojaat qilish mumkin. Bu avval yaratilgan tiplashtirilgan fayllarni kengaytirish va yangilash imkoniyatini beradi. Reset prosedurasi yordamida ochilgan matnli fayllar uchun Write yoki Writeln proseduralaridan foydalanib bo’lmaydi.

  Rewrite < fayl o’zgaruvchisi > prosedurasi fayl o’zgaruvchisi bilan bog’langan faylga yozish uchun beriladi.

  1. Keltirilgan dastur va rasmga ko’ra dasturning maqsadini aniqlash:

 procedure TForm1.Button1Click(Sender: TObject);

const N=1000;

 var

 F,f1:textfile; M:array [1..N] of real; i:integer;

begin

 AssignFile(F,'prog.txt'); AssignFile(f1,'pp.txt'); reset(F); Append(f1);

 i:=1; label1.Caption:='';

 while not EOF(f) and (i<=N) do

 begin

 Read(F,M[i]); writeln(F1,i,' ',sqr(m[i]));

 label1.Caption:=label1.Caption+inttostr(i)+ ' '+floattostr(sqrt(m[i]))+#13;

 inc(i); end; CloseFile(F); closefile(f1); end; end. 

Kichik guruhlarda ishlash uchun materiallar:

1,Fayllar bilan ishlash uchun qo’llanaladigan qism dasturlar bilan tanishish.

  1. function EOF (var F):Boolean;

 Fayl ko’rsatgichi faylning oxirida turgan bo’lsa TRUE, aksincha FALSE qiymatini beradi. Masalan, yuqorida keltirilgan proseduradagi

while not EOF(f) and (i<=N) do

 va yoki

while EOF(f)=false and (i<=N) do buyrug’lari yordamida f-fayl o’zgaruvchisidan ('prog.txt') matnni oxirigacha o’qish uchun foydalanish mumkin.

  1. function FileExists (const Filename:string):boolean;

FileName dagi fayl (hatto faylgacha bo’lgan yul) mavjud bo’lsa, True aksincha False qiymatini beradi.

Masalan, quyida keltirilgan dasturning qismida ('prog.txt') faylining majudligi tekshiriladi va u mavjud bulmagan holda” fayl mavjud emas” yozuvi ekranga chiqadi.

AssignFile(F,'prog.txt');

 AssignFile(f1,'pp.txt');

 if fileExists('prog.txt')=true then goto 10 else showMessage(' fayl mavjud emas');

 10:reset(F);

 


  1. function FindFirst(const Path: String; Attr:integer; var F: TSearchRec):integer;

 Katalogda mavjud bo’lgan birinchi faylning atributlarini beradi: Path-qidiruv yo’nalishi va fayllarni tanlash shabloni, Attr-fayl atributlari, F- TSearchRec tipidagi o’zgaruvchi, fayl mavjud holda 0 qiymatni beradi.

  1. function findClose(var F: TSearchRec);

FindFirst va FindNext funksiyalari orqali fayllarni qidirish uchun ajratilgan xotiraning band qismini ozod qiladi.

  1. function FindNext(var F: TSearchRec):integer;

Katalogdan qidirilayotgan navbatdagi faylning nomini F- o’zgaruvchiga uzatadi.

Yuqoridagi funksiyalar uchun quyidagi dastur va dasturning natijasini keltiramiz.

var mask:string;

sr:TsearchRec;

begin

 mask:=edit1.Text; if mask='' hen mask:='*.*';

 memo1.LineS.Clear;

 If FindFirst(mask,FaAnyFile,sr)=0 then

 repeat

 memo1.LineS.Add(sr.Name);

 until FindNext(sr)<>0;

 findclose(sr); end;end.



Комментарии

Популярные сообщения из этого блога