Binar fayillar bilan ishlash
Fayllar bilan ishlash dasturlashda ma'lumotlarni tashqi fayllarga saqlash yoki o'qish uchun muhim hisoblanadi. Bu jarayon matnli va binar fayllar bilan farq qiladi. Quyida matnli va binar fayllar bilan ishlashning nazariy qismi va GCC orqali ishlashni tushuntiruvchi amaliy misollar keltirilgan.
1. Matnli fayllar bilan ishlash
Matnli fayllar odatda inson o'qiy oladigan harflar, raqamlar va boshqa belgilarni o'z ichiga oladi. Biz ushbu fayllarga ma'lumotlarni yozish va o'qish uchun fprintf, fscanf kabi funksiyalardan foydalanamiz.
Nazariy ma'lumotlar:
fopen
: Faylni ochish uchun ishlatiladi. Misol:fopen("file.txt", "r");
"r"
- Faqat o'qish uchun faylni ochish."w"
- Faylni yozish uchun ochish (agar fayl mavjud bo'lmasa, yaratiladi)."a"
- Fayl oxiridan yozishni davom ettirish.
fclose
: Faylni yopish uchun ishlatiladi.fclose(fayl_ko'rsatgich);
fprintf
: Faylga ma'lumot yozish uchun ishlatiladi.fprintf(fayl_ko'rsatgich, format, qiymatlar);
fscanf
: Fayldan ma'lumot o'qish uchun ishlatiladi.fscanf(fayl_ko'rsatgich, format, qiymatlar);
Amaliy misol:
Misol 1: Matnli faylga yozish va o'qish
Tushuntirish:
Fayl
"matnli_fayl.txt"
ochiladi va ma'lumotlar yoziladi.Keyin faylni o'qib, ekranga chiqarish uchun ochamiz va ma'lumotlarni satrma-satr o'qiymiz.
2. Binar fayllar bilan ishlash
Binar fayllar ma'lumotlarni baytlar ko'rinishida saqlaydi. Ushbu fayllar inson uchun tushunarli bo'lmaydi, lekin kompyuter uchun ma'lumotlarni saqlashda samarali.
Nazariy ma'lumotlar:
fwrite
: Binar faylga yozish uchun ishlatiladi.fwrite(ko'rsatgich, element_o'lchami, element_soni, fayl_ko'rsatgich);
fread
: Binar fayldan ma'lumot o'qish uchun ishlatiladi.fread(ko'rsatgich, element_o'lchami, element_soni, fayl_ko'rsatgich);
Amaliy misol:
Misol 2: Binar faylga yozish va o'qish
Tushuntirish:
struct Student
ma'lumot tuzilmasi binar faylga yoziladi va keyin o'qib olinadi.fwrite
funksiyasi binar faylga yozish uchun,fread
esa o'qish uchun ishlatiladi.
GCC orqali fayllar bilan ishlash
Siz ushbu kodlarni GCC orqali ishlatishingiz mumkin. Buning uchun quyidagi buyruqlarni ishlatishingiz kerak:
Matnli fayl bilan ishlash uchun:
Binar fayl bilan ishlash uchun:
Matnli fayllar uchun
fprintf
,fscanf
kabi funksiyalar ishlatiladi.Binar fayllar uchun esa
fwrite
,fread
funksiyalari ishlatiladi.Fayllarni ishlatgandan keyin har doim
fclose
funksiyasi yordamida yopish kerak.
Binar fayllar bilan ishlash odatda raqamli ma'lumotlarni yoki tuzilmalarni bayt ko'rinishida yozish va o'qish jarayonlarini o'z ichiga oladi. Binar fayllar inson o'qiy oladigan matn emas, balki kompyuter uchun o'qiladigan raqamli ko'rinishdagi ma'lumotlarni saqlash uchun ishlatiladi. Bu turdagi fayllar, masalan, tasvirlar, videolar, ovoz fayllari yoki ma'lumotlar tuzilmalari bo'lishi mumkin.
1. Binar fayllar bilan ishlash
Binar fayllar baytli ko'rinishdagi ma'lumotlarni saqlaydi. Bu fayllar matnli fayllardan farqli o'laroq inson tomonidan to'g'ridan-to'g'ri o'qilishi qiyin, ammo kompyuter ushbu fayllardan samarali foydalanishi mumkin.
Nazariy ma'lumotlar:
fopen
: Faylni ochish uchun ishlatiladi. Binar fayllarni ochishda"rb"
,"wb"
,"ab"
rejimlari ishlatiladi."rb"
- Faylni binar formatda o'qish uchun ochish."wb"
- Binar formatda faylni yozish uchun ochish (mavjud fayl o'chirilib, yangisi yaratiladi)."ab"
- Fayl oxiridan yozish uchun binar formatda ochish.
fwrite
: Faylga binar ma'lumot yozish uchun ishlatiladi.fwrite(ko'rsatgich, element_o'lchami, element_soni, fayl_ko'rsatgich);
ko'rsatgich
- yoziladigan ma'lumot joylashgan xotira manzili.element_o'lchami
- yoziladigan har bir elementning o'lchami.element_soni
- yoziladigan elementlar soni.fayl_ko'rsatgich
- fayl ochilganda qaytarilgan ko'rsatgich.
fread
: Fayldan binar ma'lumot o'qish uchun ishlatiladi.fread(ko'rsatgich, element_o'lchami, element_soni, fayl_ko'rsatgich);
ko'rsatgich
- o'qilgan ma'lumot saqlanadigan xotira manzili.element_o'lchami
- o'qiladigan har bir elementning o'lchami.element_soni
- o'qiladigan elementlar soni.fayl_ko'rsatgich
- fayl ochilganda qaytarilgan ko'rsatgich.
Amaliy misol:
Misol 1: Binar faylga yozish va o'qish
Quyida oddiy ma'lumotlar tuzilmasini binar faylga yozish va keyinchalik o'qish amaliyoti ko'rsatilgan.
Tushuntirish:
struct Student
nomli ma'lumot tuzilmasi yaratiladi, bu ma'lumotlar tuzilmasi talabaning ismi, yoshi va bahosini saqlaydi.fopen
yordamida binar fayl yozish uchun ochiladi ("wb"
rejimi), vafwrite
yordamida ma'lumotlar binar faylga yoziladi.Fayl yopiladi va keyin binar formatda o'qish uchun ochiladi (
"rb"
rejimi).fread
yordamida fayldan ma'lumot o'qilib, ekranga chiqariladi.
2. Binar fayllarni qo'llashda afzalliklar va kamchiliklar:
Afzalliklari:
Katta hajmdagi ma'lumotlar: Binar fayllar katta hajmdagi ma'lumotlarni tezroq va samaraliroq yozish va o'qish imkoniyatini beradi.
Xotira tejamkorligi: Matnli fayllarga nisbatan binar fayllar ko'proq xotirani tejaydi, chunki ma'lumotlar bayt ko'rinishida saqlanadi.
Kamchiliklari:
Inson uchun tushunarli emas: Binar fayllarni matnli muharrirlar yordamida o'qish mumkin emas, ular kompyuter uchun tushunarli bo'ladi.
Muayyan formatga bog'liq: Fayllardagi ma'lumotlar kompyuter yoki dastur formati bilan bog'liq bo'lishi mumkin, shuning uchun ularni boshqa tizimlar yoki dasturlar bilan ishlatishda moslashish kerak bo'lishi mumkin.
GCC orqali binar fayllarni sinab ko'rish
Quyida GCC kompilyatori orqali yuqoridagi kodni qanday ishlatish ko'rsatilgan:
Binar fayl bilan ishlash uchun:
Bu kodlar bajarilgandan so'ng, student_data.bin
nomli binar fayl yaratiladi va faylga yozilgan ma'lumot qayta o'qilib ekranga chiqariladi.
Xulosa:
Matnli fayllar inson tomonidan tushunilishi va o'qilishi mumkin bo'lsa, binar fayllar ma'lumotlarni bayt ko'rinishida saqlaydi.
Binar fayllar ma'lumotlarni samarali va tejamkor saqlaydi, lekin ularni o'qish va tahrirlash uchun maxsus dasturiy ta'minot yoki kod kerak bo'ladi.
fwrite
vafread
kabi funksiyalar binar fayllar bilan ishlashda muhim vositalar hisoblanadi.
Yuqoridagi tushunchalarni sinab ko'rish va GCC yordamida o'qish va yozish amaliyotini ishlatishingiz mumkin.
Maxfiy xabarlarni yzoish uchun qo'llasangiz buladi.
Last updated