Satr va fayl ustida amallar - O’zbekiston respublikasi oliy va o’rta maxsus ta’lim vazirligi buxoro davlat universiteti

1.1.3 Satr va fayl ustida amallar
Fayl ustida amallar
Fayl bu ma’lumotlarning fundamental strukturalaridan biri. Kompyuterlarning
dastur bilan ishlashi, tashqi qurilmalar bilan aloqasi fayl strukturasiga
asoslangandir.
Fayllar quyidagi masalalarni yechishga asoslangandir:
Qiymatlarni boshqa dasturlar foydalanishi uchun saqlab qo’yish;
Dasturning kiritish-chiqarish tashqi qurilmalari bilan aloqasini tashkil qilish.
Fayl tushunchasining ikki tomoni bor:
Tomondan fayl – tashqi xotiraning biror axborotni saqlovchi nomlangan bir
qismidir. Bunday tushunchadagi fayl fizik fayl deb ataladi.
Tomondan fayl – bu dasturda ishlatiladigan ma’lumotlarning turli strukturalaridan
biridir. Bunday tushunchadagi fayl mantiqiy fayl deb ataladi, yani u bizning
tasavvurimiz bilan hosil qilinadi.
Fizik fayl strukturasi
Fizik fayl strukturasi axborot tashuvchi – kattik yoki yumshoq magnit disklaridagi
baytlarning oddiy ketma-ketligidan iborat.
Mantiqiy fayl strukturasi
35
Mantiqiy fayl strukturasi – bu, faylni dasturda qabul qilish usulidir. Obrazli qilib
aytsak, u biz faylning fizik strukturasiga qarashimiz mumkin bo’lgan «shablon»dir.
Ana shunday shablonlarga misol ko’raylik:
Belgi
Belgi
…
Belgi
eof
Bu yerda har bir belgi faylning bir yozuvi, eof esa faylning oxirini bildiradi.
Yunalish tugmasi belgisini marker deb ataylik, markerni dastur ko’rsatmasi bilan
faylning ixtiyoriy yozuviga keltirib quyish va o’sha yozuvni o’qish mumkin.
Bunda har bir o’qishda faqat bitta belgi uqiladi.
Yuqorida fayl yozuvi sifatida belgili tipni oldik, endi fayl yozuvi sifatida
strukturani olamiz:
Bu yerda bizda strukturada quyidagicha malumotlar bor desak
1.2-jadval. Struktura ko’rinishi.
Halimov
Vobkent,15
2001
Botirov
P.Neruda,12
1988
Ikromov
Guliston ,45
1989
Xidirov
Galaba,13
1992
Har bir yozuvda 3 ta maydon bor va yozuvlar soni esa to’rtta.
Agar biz fayldan 1-yozuvni o’qishni buyursak, unda bir o’qishda 3 ta
o’zgaruvchida Halimov, Vobkent,15, 2001 ma’lumotlari birdaniga o’qiladi. Buni
qanday amalga oshirishni quyida ko’ramiz.
Agar fayl strukturasini massiv strukturasiga solishtirsak, quyidagi farqlarni
ko’ramiz:
Massivda elementlar soni xotirani taqsimlash vaqtida o’rnatiladi va u to’laligicha
tezkor xotiraga joylashadi. Massiv elementlari raqamlanishi uni e’lon qilishda
ko’rsatilgan quyi va yuqori chegaralarga mos holda o’rnatiladi.
Faylda esa elementlar(yozuvlar) soni dastur ishi jarayonida o’zgarishi mumkin va
u tashqi axborot tashuvchilarda joylashgan. Fayl elementlarini raqamlash 0 dan
boshlanadi va elementlar soni doim noaniq.
36
Biz yuqorida o’zgaruvchilarning turli toifalari bilan ishlab keldik. Bular skalyar,
oddiy va murakkab tarkiblashgan toifalardir. Bu toifadagi ma’lumotlar yordamida
masalalarni yechishda boshlang’ich ma’lumotlar klaviaturadan operativ xotiraga
kiritiladi va natija ekranga chiqariladi. Ulardan boshqa dasturlarda foydalanib
bo’lmaydi, chunki ular tizimdan chiqilgandan so’ng hech qayerda saqlanmaydi. Bu
ma’lumotlarni xotirada saqlash uchun C# tilida ma’lumotlarning faylli toifasi
belgilangan.
Toifalashgan fayllar bir xil toifali elementlardan tashkil topadi. Ularni ma’lum
qurilmalarda uzatish ham mumkin. Faylning elementlari mashina kodlarida
yoziladi va saqlanadi.
Toifalashmagan fayllarda turli toifadagi malumotlarni saqlash mumkin. Ular ham
mashina kodlarida yozilgan bo’lib baytlar to’plamini tashkil qiladi.
Matnli fayllar ASCII kodlardan tashkil topgan va qatorlarga ajratilgan bo’ladi.
Matnli fayllarda nafaqat faylning yakunida fayl oxiri belgisi, balki har qatorning
yakunida maxsus qator oxiri belgisi qo’yiladi.
Fayl tipidagi o’zgaruvchi fayl o’zgaruvchisi deyiladi, u faylning mantiqiy nomini
belgilaydi va u mantiqiy fayl bilan tashqi(fizik) fayl o’rtasida «vositachi»
vazifasini o’taydi.
Yuqoridagi barcha turdagi fayllar ustida, umuman olganda quyidagi amallarni
bajarish mumkin va bu amallar uchun quyidagi maxsus metodlar ishlatiladi:
Fayllarda ma’lumotlarni yozish va o’qishni misollar orqali qarab chiqamiz.
|