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.
- 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.
- 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.
- 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);
- 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.
- function findClose(var F: TSearchRec);
FindFirst va
FindNext funksiyalari orqali fayllarni qidirish uchun ajratilgan xotiraning
band qismini ozod qiladi.
- 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.
Комментарии
Отправить комментарий