• Ma’lumotlarni massivga yozish
  • Binar va fizik fayllar
  • Binar faylni ochish va yopish
  • Massiv elementlarini binar faylga yozish
  • Misol
  • Matritsalar bilan ishlashga misol
  • Dasturlash 1 swd 1316 matnli fayllar bilan ishlash operatorlari 11




    Download 5,89 Mb.
    bet4/4
    Sana02.12.2023
    Hajmi5,89 Mb.
    #110000
    1   2   3   4
    Bog'liq
    hTxjx4etD58fbBlkpvM1vzFvHNhiopHM7SWRHK3J

    Fayl ochishdagi hatoliklar

    • main()
    • {
    • FILE *f;
    • int n, x, S = 0;
    • f = fopen ( "input.txt", "r" );
    • if ( f == NULL ) {
    • printf(“Fayl topilmadi.");
    • getch(); return 0;
    • }
    • while ( 1 ) {
    • n = fscanf ( f, "%d", &x );
    • if ( n != 1 ) break;
    • S += x;
    • }
    • fclose ( f );
    • f = fopen ( "output.txt", "w" );
    • fprintf ( f, "S = %d", S );
    • fclose ( f ); }
    • Faylni ochishda xatolik
    • Ma’lumotlarni o’qish sikli: n  1 da chiqish.
    • Natijani yozish

    Ma’lumotlarni massivga yozish

    • int ReadArray ( int A[], char fName[], int MAX )
    • {
    • int N = 0, k;
    • FILE *f;
    • f = fopen ( fName, "r" );
    • while ( 1 ) {
    • k = fscanf ( f, "%d", &A[N]);
    • if ( k != 1 ) break;
    • N ++;
    • if ( N >= MAX ) break;
    • }
    • fclose(f);
    • return N; }
    • Fayldan massivni o’quvchi funksiya massiv elementlar sonini chiqaradi (kamida MAX):
    • massiv
    • Agarda o’qish mumkin bo’lmasa sikldan chiqish
    • fayl nomi
    • chegara
    • … yoki massiv to’ldi

    Amaliy masala:

    • input.txt faylida matn berilgan. Satrda “anaqa” so’zi ko’p ishlatilgan. Matnni bu so’zdan xalos eting va output.txt faylga yozing.

    Binar va fizik fayllar

    fopen() - funksiyasi

    • Faylni ochishda xatolik sodir bo’lsa, fopen funksiyasi NULL qiymat qaytaradi.
    • fopen(“fayl_nomi”,”ochish_turi”);
    • Faylni yozishda xatolik sodir bo’lmasa, fclose() funksiyasi nol qiymat qaytaradi. Xato sodir bo’lsa, EOF – fayl ohiri qaytariladi.
    • fclose(fayl_o’zgaruvchisi);

    Binar faylni ochish va yopish

    • Faylni ochish
    • fp = fopen ( "input.dat", "rb" );
    • "rb" = read binary (oqish)
    • "wb" = write binary (yozish)
    • "ab" = append binary (qo’sish)
    • Ochishdagi xatolik
    • if ( fp == NULL ) { printf(“fayl ochilmadi.");
    • }
    • Faylni yopish
    • fclose ( fp );

    fprintf() va fscanf() funksiyasi

    • 1- etap. Faylni ochish (uni ishga tayyorlash va uni
    • faollashtirish)
    • f = fopen(“bir.txt", “rb");
    • 2- etap: fayl bilan ishlash
    • 3- etap: faylni yopish
    • fclose ( f );
    • fscanf ( f, "%d", &n ); // n qiymatini kiritish
    • fprintf( f, "n=%d", n ); // n qiymatini yozish
    • ("rb", англ. read) faqat o’qish uchun
    • f = fopen(“bir.txt", "wb");
    • ("wb", англ. write) faqat yozish uchun
    • f = fopen(“bir.txt", "ab");
    • ("ab", англ. append) faqat yangilash uchun
    • O’zgaruvchi tipi
    • «faylga ko’rsatkich»: FILE *f;

    fscanf() va fprintf() misol

    Bloklar bo’yicha yozish

    • Massiv boshidan yozish
    • int A[100];
    • n = fwrite( A, sizeof(int), 100, fp );
    • Xotiradagi soha manzili(«qayerdan»):
    • A  &A[0]
    • Bitta blok o’lchami
    • Butun tipli o’zgaruvchi o’lchami
    • Bloklar soni
    • Faylga ko’rsatkich
    • Yozilganlar soni
    • Massivni alohida elementlarini yozish
    • int A[100];
    • n = fwrite( A+5, sizeof(int), 2, fp );
    • 2 ta butun son o’qiladi:
    • A[5], A[6]

    Massiv elementlarini binar faylga yozish

    Bloklar bo’yicha o’qish

    • Massiv boshidan yozish
    • int A[100];
    • n = fwrite( A, sizeof(int), 100, fp );
    • Xotiradagi soha manzili(«qayerdan»):
    • A  &A[0]
    • Bitta blok o’lchami
    • Butun tipli o’zgaruvchi o’lchami
    • Bloklar soni
    • Faylga ko’rsatkich
    • Yozilganlar soni
    • Massivni alohida elementlarini yozish
    • int A[100];
    • n = fread ( A+5, sizeof(int), 2, fp );
    • 2 ta butun son o’qiladi:
    • A[5], A[6]

    Misol:

    Matrisa bilan ishlash

    • Xotirada saqlash: satr bo’yicha
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • Matrisalarga yozish
    • int A[3][3];
    • FILE *fp = fopen("output.dat", "wb");
    • ... // matrisani to’ldirish
    • n = fwrite( A, sizeof(int), 9, fp );

    Matritsalar bilan ishlashga misol:

    Faylni ochishda xatolik

    Fayl ko’rsatgichi bilan ishlash funksiyalari

    • Fayl ko’rsatgichini kelgan joyini aniqlash uchun ftell funksiyasi ishlatiladi.
    • long int ftell(FILE * stream);
    • Fayl ko’rsatgichini siljitish uchun fseek funksiyasi ishlatiladi.
    • int fseek (FILE * stream, long int offset, int whence);

    Xulosa

    • Matnli fayllarda ma’lumotlarni saqlash va ularni dasturlash tillari yordamida qayta ishlash - katta hajmdagi ma’lumotlardan samarali va tez foydalanish imkoniyatlarini yaratadi.
    • C++ da BINAR fayllardan kompilyatsiya jarayonida operativ xotira hajmini juda katta hajmdagi dinamik ma’lumotlar bilan band qilishni oldini olish uchun qo’llaniladi.
    • MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
    • Mallayev Oybek
    • Usmonqulovich
    • “Informatika asoslari” kafedrasi dotsenti
    • E’TIBORINGIZ UCHUN RAHMAT!

    Download 5,89 Mb.
    1   2   3   4




    Download 5,89 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dasturlash 1 swd 1316 matnli fayllar bilan ishlash operatorlari 11

    Download 5,89 Mb.