Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 3000UZS
Размер 727.7KB
Покупки 0
Дата загрузки 02 Август 2023
Расширение ppt
Раздел Презентации
Предмет Информатика и ИТ

Продавец

Bohodir Jalolov

To’g’ri murojaatli fayllarni kiritish chiqarish. Istisno holatlariga ishlov berish

Купить
To’g’ri murojaatli fayllarni kiritish To’g’ri murojaatli fayllarni kiritish chiqarish. chiqarish. Istisno holatlariga ishlov berish.Istisno holatlariga ishlov berish. Reja : 1. Faylga ixtiyoriy murojaat qilish 2. Fayl ko’rsatkichning joriy pozisiyasini aniqlash uchun ftell 3. fseek (fp, ol, SEEK_SET) Ma’lumotlarni massivga yozish 3 Faylga ixtiyoriy murojaat qilish F unksiyalar faylga ketma-ket yozish yoki ketma-ket o’qishga imkon beradi . Fayldan o’qib faylga yozishlar doim joriy pozisiyada bo’ladi. Boshlang’ich pozisiya fayl ochilganda aniqlanadi. Faylni &#34;r&#34; va &#34;w&#34; rejimida ochilganda joriy pozisiya ko’rsatkichi faylning birligi baytini ko’rsatadi, &#34;a&#34; rejimida ochilganda, o c hish baytini ko’rsatadi. Har bir kiritish-chiqarish amali bajarilganda, ko’rsatkich o’qilgan baytlar soniga qarab yangi pozisiyaga ko’chadi. 4 Faylga ixtiyoriy murojaat qilish F aylda n ma’lumot oqilganda fayl ko’rsatkichi avtomarik ravishda oqilgan yoki yozilgan bayt miqdoricha siljiydi. Fayl ko’rsatkichning joriy pozisiyasini aniqlash uchun ftell ishlatiladi. long ftell (FILE*) Fayl ko’rsatkichini siljiti sh uchun fseek () funksiyasidan foydalani ladi. int fseek (faylga ko’rsatkich, oraliq, hisobot boshi) Hisobot boshi quyidagi konstantalardan biri bilan aniqlanadi : Konstanta Hisobot boshi Izoh SEEK_SET 0 fayl boshi SEEK_CUR 1 o’qilayotgan pozisiya SEEK_ END 2 Fayl oxiri 5 Faylga ixtiyoriy murojaat qilish fseek () funksiyasi 0 qaytaradi agar faylda ko’chish bajarilgan bo’lsa, aksincha noldan farqli songa teng bo’ladi Ixtiyoriy pozisiyadan fayl boshiga o’tish: fseek (fp, ol, SEEK_SET) Ixtiyoriy pozisiyadan fayl boshiga o’tish: fseek (fp, ol, SEEK_END) Joriy pozisiyadan bir bayt oldinga yoki or q aga k o’ chish uchun fseek (jp, -1L, SEEK_CUR). Fayl ko’rsatkichini fayl boshiga ornatish uchun rewind ishlatiladi void rewind (FILE*) Bu amalni fayl ko’rsatkichini siljitish orqali ham amalga oshirish mumkin fseek (f, 0, SEEK_SET). 6 Ma’lumotlarni massivga yozish F ayldan simvollar avval to’g’ri tartibda, so’ngra teskari tartibda o’qi sh int main() { char file[256]; char ch; FILE *fp, *wp; long count, last = 0; puts(&#34;fayl nomini kiriting:\\n&#34;); wp = fopen(&#34;output.txt&#34;,&#34;w&#34;); if ((fp = fopen(&#34;input.txt&#34;,&#34;r&#34;)) == NULL) { fprintf (wp, &#34;%s&#34;, &#34;Faylni ochib bo&#39;lmadi\\n&#34;); getch(); return 0; }int main() { char file[256]; char ch; FILE *fp, *wp; long count, last = 0; puts(&#34;fayl nomini kiriting:\\n&#34;); wp = fopen(&#34;output.txt&#34;,&#34;w&#34;); if ((fp = fopen(&#34;input.txt&#34;,&#34;r&#34;)) == NULL) { fprintf (wp, &#34;%s&#34;, &#34;Faylni ochib bo&#39;lmadi\\n&#34;); getch(); return 0; } 7 Ma’lumotlarni massivga yozish F ayldan simvollar avval to’g’ri tartibda, so’ngra teskari tartibda o’qi sh ( davomi ) while(!feof(fp)) { ch = getc(fp); putchar(ch); putchar(&#39;\\n&#39;); last++; } for (count = 1L; count <= last; count++) { fseek(fp, -count, SEEK_END); ch = getc(fp); putchar(ch); putchar(&#39;\\n&#39;); } fclose(fp); fclose(wp); getch(); }while(!feof(fp)) { ch = getc(fp); putchar(ch); putchar(&#39;\\n&#39;); last++; } for (count = 1L; count <= last; count++) { fseek(fp, -count, SEEK_END); ch = getc(fp); putchar(ch); putchar(&#39;\\n&#39;); } fclose(fp); fclose(wp); getch(); } To’gri o’qish va yozishTo’gri o’qish va yozish Teskari tartibda o’qishTeskari tartibda o’qish 8 Pozisiyaga oid funksiyalar M isol . F ayl ikkilik rejimda faqat o’qish uchun ochil sin . s o’ngra fayl ko’rsatkichi fayl oxiriga keltirilib, ftell funksiyasi yordamida fayl hajmi aniqlan s i n rewind funksiyasi yordamida fayl ko’rsatkichi fayl boshiga qaytarilib, siklda simvollar ketma-ket fayldan o’qil sin va ekranga chiqaradi. fseek(fp, 0L, SEEK_END); last = ftell(fp); rewind(fp); for (count = 1L; count <= last; count++) { ch = getc(fp); putchar(ch); putchar(&#39;\\n&#39;); } fclose(fp); getch(); }fseek(fp, 0L, SEEK_END); last = ftell(fp); rewind(fp); for (count = 1L; count <= last; count++) { ch = getc(fp); putchar(ch); putchar(&#39;\\n&#39;); } fclose(fp); getch(); } 9 Murakkab ma’lumotlarni o’qish va yozish. Murakkab ma’lumotlarni kiritish va chiqarish fread( ) va fwrite( ) funksiyalari orqali amalga oshiriladi. Ikkala funksiya butun o’qilgan yoki yozilgan baytlar sonini qaytaradi. size_t fread(void * ptr, size_t size, size_t nmemb, FILE * fp); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE *fp);size_t fread(void * ptr, size_t size, size_t nmemb, FILE * fp); size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE *fp); fread funksiyasi fayldan ptr ko’rsatkichi adresiga size hajmdagi ma’lumotdan nmemb tani o’qishni amalga oshiradi . Agar o’qish muvaffaqiyatli amalga oshsa fread funksiyasi o’qilgan bloklar soni n ni chiqaradi. O’qish fayldagi joriy pozisiyadan boshlanadi. Aks holda nol chiqaradi. Masalan , fayldan 10 ta double t 10 Murakkab ma’lumotlarni o’qish va yozish. fwrite() funksiyasi fp fayl ga ptr ko’rsatkichi adresidan boshlab size hajmdagi malumotdan nmemb tani yozishi amalga oshiradi . Masalan , faylga 10 ta double turidagi sonni massivdan yozish: double earnings[10]; fwrite(earnings, sizeof (double), 10, fp); Faylga 256 bayt ma’lumot yozish: char buffer[256]; fwrite(buffer, 256, 1, fp); double earnings[10]; fwrite(earnings, sizeof (double), 10, fp); Faylga 256 bayt ma’lumot yozish: char buffer[256]; fwrite(buffer, 256, 1, fp); 11 fread() va fwrite() ga misol int main() { int n = 5; double d = 10.77; char s[20]=&#34;acm.tuit.uz&#34;; FILE *f; //binar faylni yozish uchun ochish f=fopen(&#34;binar.dat&#34;, &#34;wb&#34;); //n sonini faylga yozish fwrite(&n, sizeof(int), 1, f); //d sonini faylga yozish fwrite(&d, sizeof(double), 1, f); //satrni faylga yozish fwrite(s, sizeof(char), strlen(s)+1, f); fclose(f); //faylni yopish . . . int main() { int n = 5; double d = 10.77; char s[20]=&#34;acm.tuit.uz&#34;; FILE *f; //binar faylni yozish uchun ochish f=fopen(&#34;binar.dat&#34;, &#34;wb&#34;); //n sonini faylga yozish fwrite(&n, sizeof(int), 1, f); //d sonini faylga yozish fwrite(&d, sizeof(double), 1, f); //satrni faylga yozish fwrite(s, sizeof(char), strlen(s)+1, f); fclose(f); //faylni yopish . . . fwrite() funksiy 12 fread() va fwrite() ga misol (davomi) n = 0; d = 0; // hozircha 0 ga teng //binar faylni oqish uchun ochish f=fopen(&#34;binar.dat&#34;, &#34;rb&#34;); //n sonini fayldan o&#39;qish fread(&n, sizeof(int), 1, f); //d sonini fayldan o&#39;qish fread(&d, sizeof(double), 1, f); //satrni faylga yozish fread(s, sizeof(char), strlen(s)+1, f); fclose(f); //faylni yopish cout<<n<<endl<<d<<endl<<s<<endl; getch(); return 0; }n = 0; d = 0; // hozircha 0 ga teng //binar faylni oqish uchun ochish f=fopen(&#34;binar.dat&#34;, &#34;rb&#34;); //n sonini fayldan o&#39;qish fread(&n, sizeof(int), 1, f); //d sonini fayldan o&#39;qish fread(&d, sizeof(double), 1, f); //satrni faylga yozish fread(s, sizeof(char), strlen(s)+1, f); fclose(f); //faylni yopish cout<<n<<endl<<d<<endl<<s<<endl; getch(); return 0; 13 Misol S truktura tur idagi massivni faylga yozish typedef struct { char name[4]; int age; int salary; } employee; int main() { int i; char file[256]; FILE* fp; employee ww[3] = {{&#34;AA&#34;,1,1},{&#34;BB&#34;,2,2},{&#34;CC&#34;,3,3}}; puts(&#34;Fayl nomini kiriting:\\n&#34;); if ((fp = fopen(file,&#34;w&#34;)) == NULL) { printf(&#34;Faylni ochib bo&#39;lmadi %s\\n&#34;, file); } fwrite(&ww[0],sizeof(employee),3,fp); fclose(fp); }typedef struct { char name[4]; int age; int salary; } employee; int main() { int i; char file[256]; FILE* fp; employee ww[3] = {{&#34;AA&#34;,1,1},{&#34;BB&#34;,2,2},{&#34;CC&#34;,3,3}}; puts(&#34;Fayl nomini kiriting:\\n&#34;); if ((fp = fopen(file,&#34;w&#34;)) == NULL) { printf(&#34;Faylni ochib bo&#39;lmadi %s\\n&#34;, file); } fwrite(&ww[0],sizeof(employe 14 Misol N natural soni berilgan. Elementlari n ta butun sondan iborat bo’lgan faylni hosil qiluvchi va juft elementlarini 2 marta orttiruvchi dastur tuzing. int main(){ int n, k, i; FILE *f; //binar faylni oqish va yozish uchun ochish f = fopen(&#34;binar&#34;, &#34;wb+&#34;); if (f == NULL) { cout <<&#34;Fayl hosil qilishda xatolik&#34;; return 1; } cout<<&#34;n = &#34;; cin>>n; for (i = 0; i < n; i++) { cin>>k; fwrite(&k, sizeof(k), 1, f); } //fayl ko&#39;rsatkichni satr boshiga qo&#39;yish rewind(f); int main(){ int n, k, i; FILE *f; //binar faylni oqish va yozish uchun ochish f = fopen(&#34;binar&#34;, &#34;wb+&#34;); if (f == NULL) { cout <<&#34;Fayl hosil qilishda xatolik&#34;; return 1; } cout<<&#34;n = &#34;; cin>>n; for (i = 0; i < n; i++) { cin>>k; fwrite(&k, sizeof(k), 1, f); } 15 Misol (davomi) while (!feof(f)) // fayl oxiriga bormadimi { fread(&k, sizeof(k), 1, f); if (k % 2 ==0) { k *= 2; // fayl ko&#39;rsatkichni sizeof(int) bayt chapga surish fseek(f, -sizeof(int), SEEK_CUR); fwrite(&k, sizeof(int), 1, f); // fayl korsatkichni o&#39;rnatish fseek(f, ftell(f), SEEK_SET); } } cout<<&#34;Fayl elementlari \\n&#34;; rewind(f); //fayl ko&#39;rsatkichni satr boshiga qo&#39;yish while (fread(&k, sizeof(k), 1, f)) cout << k <<endl; fclose(f); return 0; }while (!feof(f)) // fayl oxiriga bormadimi { fread(&k, sizeof(k), 1, f); if (k % 2 ==0) { k *= 2; // fayl ko&#39;rsatkichni sizeof(int) bayt chapga surish fseek(f, -sizeof(int), SEEK_CUR); fwrite(&k, sizeof(int), 1, f); // fayl korsatkichni o&#39;rnatish fseek(f, ftell(f), SEEK_SET); } } cout<<&#34;Fayl elementlari \\ 16 Matnli fayllarni qayta ishlash Vazifa : input.txt faylida matn berilgan. Satrda “anaqa” so’zi ko’p ishlatilgan . Matnni bu so’zdan xalos eting va output.txt faylga yozing . input.txt fayli : Oyi anaqa derazani anaqa yuvdim . Shunga anaqa yo’l kiraga anaqa pul bering, iltimos . Gul anaqa gulzorda anaqa yaxshi ochiladi . Har bir talaba anaqa besh olishni xoxlaydi. output.txt natija fayli : Oyi derazani yuvdim . Shunga yo’l kiraga pul bering iltimos . Gul gulzorda yaxshi ochiladi . Har bir talaba besh olishni xoxlaydi . 17 Matnli fayllarni qayta ishlash Muhimligi : Bir vaqtda ikkita faylni ochish lozim ( bittasini o’qish, ikkinchisini yozish uchun ). Algoritm : 1. Ikkala fayl ham ochiq . 2. Satrni o’qish . 3. Barcha &#34; , anaqa , “ so’zni ochiring . 4. Satrni ikkinchi faylga yozish . 5. 2-qadamga o’tish . 6. Ikkala faylni yopish . Ma’lumotlar tugamadimiMa’lumotlar tugamadimi 18 Fayllar bilan ishlash main() { char s[80], *p; int i; FILE * fIn, * fOut; fIn = fopen(&#34; in put .txt &#34;, &#34;r&#34; ); f Out = fopen(&#34;output .txt &#34;, &#34;w&#34; ); ... // faylni qayta ishlash f close(fIn); f close(fOut); }main() { char s[80], *p; int i; FILE * fIn, * fOut; fIn = fopen(&#34; in put .txt &#34;, &#34;r&#34; ); f Out = fopen(&#34;output .txt &#34;, &#34;w&#34; ); ... // faylni qayta ishlash f close(fIn); f close(fOut); } Fayllarga ko’rsatkic hFayllarga ko’rsatkic h faylni o’qish uchun ochishfaylni o’qish uchun ochish faylni yozish uchun ochishfaylni yozish uchun ochishQidirish uchun ko’rsatkich Qidirish uchun ko’rsatkich faylni yopish faylni yopish 19 Matnlarni qayta ishlash s satrni o’qish : while ( 1 ) { p = strstr ( s, &#34;, anaqa,&#34; ); if ( p == NULL ) break; strcpy ( p, p + 9 ); } while ( 1 ) { p = strstr ( s, &#34;, anaqa,&#34; ); if ( p == NULL ) break; strcpy ( p, p + 9 ); } &#34;, anaqa ,“ ni qidirish &#34;, anaqa ,“ ni qidirish 9 ta simvolni o’chirish9 ta simvolni o’chirish agar topilmasa sikldan chiqarishagar topilmasa sikldan chiqarish char s[80], *p; FILE *fIn; ... // faylni ochish p = fgets ( s, 80, fIn ); if ( p == NULL ) printf(“fayl tugadi . &#34;); else printf(“O’qilgan satrlar : \\n%s&#34;, s); char s[80], *p; FILE *fIn; ... // faylni ochish p = fgets ( s, 80, fIn ); if ( p == NULL ) printf(“fayl tugadi . &#34;); else printf(“O’qilgan satrlar : \\n%s&#34;, s); s satrni qayta ishlash :satrsatr uzunli giuzunli gi 20 #include <string.h> #include <string.h> Fayllarni qayta ishlashni to’liq sikli while ( 1 ) { p = fgets ( s, 80, fIn ); if ( p == NULL ) break; while ( 1 ) { p = strstr ( s, &#34;, anaqa ,&#34; ); if ( p == NULL ) break; strcpy ( p, p + 9 ); } fputs ( s, fOut ); } while ( 1 ) { p = fgets ( s, 80, fIn ); if ( p == NULL ) break; while ( 1 ) { p = strstr ( s, &#34;, anaqa ,&#34; ); if ( p == NULL ) break; strcpy ( p, p + 9 ); } fputs ( s, fOut ); } while ( 1 ) { p = strstr ( s, &#34;, anaqa,&#34; ); if ( p == NULL ) break; strcpy ( p, p + 9 ); } Agarda satr bo’lmasa sikldan chiqarishAgarda satr bo’lmasa sikldan chiqarish Satrni qayta ishlashSatrni qayta ishlash “ tozalangan &#34; satrni yozish“ tozalangan &#34; satrni yozishSatrni o’qishSatrni o’qish
Купить
  • Похожие документы

  • Operatsion tizimlarda journaling file system
  • I/O scheduling algoritmlari
  • O‘rta Osiyo kutubxonalarining o‘rganilish masalalari
  • Funksiyalar va arrow function
  • Tashkilot xodimlari ma’lumotlarini jamlovchi tizim

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha