1.Bob. Fayllarning nazariy qismi. 1.1 FAYL TUSHUNCHASI Fayl biror nomga ega bo’lgan va kompyuterning tashqi xotirasida joylashgan baytlar majmuidir. Fayl sistemasi esa biror axborot saqlovchi vositada ma’lumotlarni joylashtirishni tashkil etish vositasidir. Bundan kelib chiqadiki, fayl sistemasi ma’lumotlarni tashqi xotiraning qaysi joyiga va qanday usulda yozilishini belgilar ekan. Fayl sistemasiga misol qilib FAT32 yoki NTFS ni aytish mumkin.
Hosilaviy turlarning muhim xususiyati shundan iboratki, ular oldindan berilgan chekli komponentalardan iborat ekanligidir. Bu esa programma bajarilmasdan oldin shu turdagi o‘zgaruvchilarning qiymatlari uchun mashina xotirasidan zarur hajmdagi joy ajratish imkonini berar edi. Ammo ma’lum bir sinf masalalari uchun oldindan komponentalar sonini aniqlash imkoni yo‘q, ular masalan yechish jarayonida aniqlanishi mumkin. Bu hollarda bir xil turdagi ixtiyoriy elementlar ketma-ketligidan iborat bo‘lib, ularning uzunligi oldindan noma’lum bo‘lib, hisoblash jaryonida aniqlanadigan turga zarurat tug‘iladi. C++ tilida bu talabga javob beruvchi tur fayl turi aniqlangan. Fayl bu murakkab ma’lumotlar strukturasi bo’lib o’z nomiga ega maxsus usullar bilan tashqi xotirada saqlash uchun mo’ljallangan. Boshqacha qilib aytsak fayl komponentalari 1 xil tipga taaluqlidir. Zamonaviy ixtiyoriy hisoblash tizimining ishlashi bu fayl bilan bog’liq ya’ni ixtiyoriy tipdagi ma’lumot saqlanadi va qayta ishlanadi.
Biz kiritish operatorlari bilan tanishgan edik. Kiritish opreratori yordamida ma’lumotlarni klaviaturaga orqali kiritish mumkin bo’lsa, chiqarish operatori ma’lumotlarni ekranga chiqarar edi. Ba’zan shunday masalalar uchraydiki, chiqarilishi lozim bo’lgan ma’lumotlar ekranga sig’may qoladi. Ba’zi masalalarning natijalarini esa keyinchalik foydalanish uchun saqlab qo’yish lozim bo’ladi. Bunday hollarda kerakli ma’lumotlarni fayl ko’rinishida saqlash maqsadga muvofiq. C++ dasturlash tili turli formatli fayllar bilan ishlash imkonini beradi. C++ fayllar bilan ishlash uchun maxsus fayl turidagi o’zgaruvchilar kiritilgan. Faylli o’zgaruvchilar orqali tashqi xotirada joylashgan fayllar ifodalanadi. Sonli o’zgaruvchining qiymati son, satrli o’zgaruvchining qiymatisatr bo’lgani kabi, faylli o’zgaruvchining qiymati fayl bo’ladi. Faylli o’zgaruvchilar ham tafsiflanishi shart.matnli fayl satr uzunligi 256 ta belgidan oshmasligi lozim
Fayl bu murakkab ma’lumotlar strukturasiga kiradi. Informatika va dasturlashda katta rol o’ynaydi. Fayllar boshqa struktura bilan quyidagilar bilan farqlanadi:
1.Tashqi xotirada saqlanadi.
2.Bu strukturadagi saqlanadigan ma’lumotlar uzoq vaqt ishlash uchun mo’ljallangan.
3.Faylda saqlanadigan ma’lumotlar qayta ishlash uchun mo’ljallangan.
4.Fayl katta hajmdagi ma’lumotlarni saqlash uchun mo’ljallangan.
Dasturlashda biz quyidagi tipdagi fayllarni tasvirlaymiz va qayta ishlaymiz.
1-Ketma-ket shaklda;
2-To’gridan-to’g’ri murojaat qilish uchun;
3-Indikslashtirilgan fayllar(kalitli fayllar)
Ko’rinib turibdiki 1-tipdagi fayllarga murojaat qilish uchun bizga kerakli elementlarni o’qiymiz va qayta ishlaymiz. 2-tipdagi fayllar bo’laklar qismlarga bo’linadi va har biri qismini yozuv deydilar. Ammo bu yerdagi yozuv tushunchasi bizga ma’lum bo’lgan aralash tip ya’ni yozuv emas.Bu yozuv fizik yozuv bo’lib, shu bo’laklarni tashqi xotirada joylashtirish usulini tushuntiradi. 3-tipdagi fayllar faqat to’g’ridan-to’g’ri murojaat qilinishi mumkin. Shuning uchun kalit to’plami orqali izlash mumkin. Fayllarni ishlatishdan avval ularni tasvirlash kerak. Quyida fayllarni tasvirlashni 2 usuli bilan taqnishamiz;
1 Yangi tip yaratib;
2.To’g’ridan -to’g’ri
Faylning buferi shu fayl elementlari tepi bilan bir xil tipga egadir. Sodda qilib aytganda fayl buferi shu faylga murojaat qilish ya’ni ularni elementlari yozish va o’qish uchun maxsus doira oynalaridir. Shu yo’l bilan faylga murojaat qilamiz.
C++ dasturlash tili tarkibida fayllar bilan ishlash uchun barcha turdagi imkoniyatlar e’tiborga olingan. Dasturlash tillarida fayllar dastur tarkibidagi o’zgaruvchilar qabul qiladigan qiymatlarni saqlash uchun ishlatiladi. Dasturlash asoslari fani rivojlanib borishi bilan dasturlash tillari tarkibida fayllar ham rivojlanib bormoqda. Dasturlash asoslari tarkibida murakkab masalalarni hal etishda o’zgaruvchilarni qiymatlari soni ko’p bo’lsa, bunday holatlarda qo’lda kiritish qulay hisoblanmaydi. O’zgaruvchilarning qiymatlari soni ko’p bo’lgan holatlarda qiymatlar fayllarda saqlansa dasturning o’zi qiymatlarni tezkor holda fayllardan qabul qilib oladi. Kompyuterning ma’lum bir joyida qiymatlar fayllar asosida saqlanadi.
Ta’rif: Kompyuterda alohida nom bilan saqlanadigan ma‘lum bir turga mansub bo’lgan ma‘lumotlar majmuasi fayl deb nomlanadi.
C++ dasturlash tili tarkibida fayllarga murojat qilish uchun fayl nomiga to’g‘ridan to’g‘ri murojat qilib bo’lmaydi, fayllarga murojat qilish uchun fayllarni dastur bilan bog‘lash uchun alohida o’zgaruvchi qabul qilinadi.