Mantiqiy va matnli fayllar bilan ishlash


II BOB GRAFIK MUHARRIRLAR HAQIDA TUSHUNCHA



Download 1,04 Mb.
bet4/7
Sana22.07.2022
Hajmi1,04 Mb.
#836293
1   2   3   4   5   6   7
Bog'liq
c builder

II BOB GRAFIK MUHARRIRLAR HAQIDA TUSHUNCHA
2.1. Mantiqiy fayllar bilan ishlash
Fizik fayllar bilan ishlash uchun, programmalashtirish tillarida maxsus strukturalashgan, toifalangan fayllar kiritilgan. Bunday fayllar mantiqiy (logicheskiy) fayllar deyiladi.
Mantiqiy fayllar, hech qanday fizik xotirani band qilmasdan ma'lumotlarning mantiqiy modelini o'zida saqlaydi.
Fizik va mantiqiy fayllar bir - biri bilan fopen funksiyasi orqali bog'lanadi.
Fayl bir nechta elementdan tashkil topgan bo'lganligi uchun, faqat fayl ko'rsatkichi kо'rsatayotgan elementga murojaat qilish mumkin.
Fayldan o'qish yoki yozish mumkin bo'lgan o'rinni ko'rsatuvhi elementga fayl ko'rsatkichi deyiladi. Fayldan ma'lumot o'qiganda yoki yozganda fayl ko'rsatkichi avtomat ravishda o'qilgan yoki yozilgan bayt miqdoricha siljiydi. Fayl ko'rsatkichini magnitafon galovkasiga o'xshatish mumkin. Binar fayl - har xil ob'ektlarni ifodalovchi baytlar ketma - ketligidir. Ob'ektlar faylda qanday ketma - ketlikda joylashganini dasturning o'zi aniqlashi lozim.
Fayllar bilan ishlovchi funksiyalardan foydalanish uchun sarlavha faylini programmaga qo'shish kerak bo'ladi.
Fayldan ma'lumotlarni o'qish yoki yozish uchun ochish fopen funksiyasi orqali amalga oshiriladi.
FILE * fopen ( const char * filename, const char * mode );
filename - o'zgaruvchisi char toifasidagi satr bo'lib, faylning to'liq nomini ko'rsatishi lozim mode - o'zgaruvchisi ham char toifasidagi satr bo'lib, faylni qaysi xolatda ochish lozimligini bildiradi.
Faylni ochishda xatolik sodir bo'lsa, fopen funksiyasi NULL qiymat qaytaradi.
Ochilgan faylni yopish uchun fclose funksiyasi ishlatiladi.
int fclose ( FILE * stream );

3-rasm

Faylni yopishda xato sodir bo'lmasa, fclose funksiyasi 0 qiymat qaytaradi. Xato sodir bo'lsa, EOF - fayl oxiri qaytariladi.


Faylga ma'lumot yozish va o'qish
size_t fread ( void * ptr, size_t size, size_t n, FILE * stream );
fread funksiyasi, fayldan ptr ko'rsatkichi adresiga size xajmdagi ma'lumotdan n tani o'qishni amalgaoshiradi.
Agar o'qish muvoffaqiyatli amalga oshsa fread funksiyasi o'qilgan bloklar soni n ni qaytaradi. Aksholda nol qaytariladi
size_t fwrite ( const void * ptr, size_t size, size_t n, FILE * stream );
fwrite funksiyasi, faylga ptr ko'rsatkichi adresidan boshlab size xajmdagi ma'lumotdan n tani yozishni amalga oshiradi.
1 - Misol. fread va fwrite funksiyalarining qo'llanilishi
include
#include
using namespace std;
int main() {
int n = 5;
double d = 10.77;
char s [20] = "dastur.uz";
FILE *f;
//binar faylni yozish uchun ochamiz
f = fopen("my_file.dat", "wb");
fwrite(&n, sizeof(int), 1, f); // n sonini faylga yozish
fwrite(&d, sizeof(double), 1, f); // d sonini faylga yozish
// satrni faylga yozish
fwrite(s, sizeof(char), strlen(s) + 1, f);
fclose(f); // faylni yopish
n = 0; d = 0;
//binar faylni o'qish uchun ochamiz
f = fopen("my_file.dat", "rb");
fread(&n, sizeof(int), 1, f); // n sonini fayldan o'qish
fread(&d, sizeof(double), 1, f); // d sonini fayldan o'qish
// satrni fayldan o'qish fread(s, sizeof(char), strlen(s) + 1, f);
fclose(f); // faylni yopish
cout « n « endl;
cout « d « endl;
cout « s « endl;
return 0; }
yuqoridagi misolda satrni yozish va o'qish uchun quyidagicha kod ishlatildi:
fwrite(s, sizeof(char), strlen(s) + 1, f);
fread (s, sizeof(char), strlen(s) + 1, f);
Buning kamchiligi s satridagi har bir belgi alohida - alohida faylga yozildi va o'qildi. Bu masalani quyidagicha hal qilish mumkin edi:
fwrite(s, sizeof(s), 1, f) ;
fread (s, sizeof(s), 1, f) ;
Lekin bu usulning ham kamchiligi bor. Ya'ni s satri belgilari soni massiv o'lchamidan kam bo'lgan holda, keraksiz ma'lumotlarni saqlash va o'qish sodir bo'ladi.

Download 1,04 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish