1 / 13

درس برنامه ‌ سازي کامپيوتر

درس برنامه ‌ سازي کامپيوتر. کار با فايل ‌ ها در زبان برنامه ‌ سازي C++. ساختار ديسکها. نحوة معرفي فايل در زبان c. معرفي متغير اشاره ‌ گر به ساختمان ( struct ) فايل ساختمان فايل : مجموعة اطلاعات مرتبط با فايل مشخص شده را نگه مي ‌ دارد نام فايل : شامل path نحوة باز شدن

harper
Download Presentation

درس برنامه ‌ سازي کامپيوتر

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. درس برنامه‌سازي کامپيوتر کار با فايل‌ها در زبان برنامه‌سازي C++

  2. ساختار ديسکها

  3. نحوة معرفي فايل در زبان c • معرفي متغير اشاره‌گر به ساختمان (struct) فايل • ساختمان فايل : مجموعة اطلاعات مرتبط با فايل مشخص شده را نگه مي‌دارد • نام فايل : شامل path • نحوة باز شدن • اشاره‌گر به موقعيت فعلي قابل خوانده/نوشته شدن فايل • ابعاد و اشاره‌گر به بافرها • ... • مربوط به کتابخانة stdio.h است

  4. نحوة دسترسي به فايل • بازکردن فايل • fopen(“abc.efg”,”w”); • ورودي به تابع : دو اشاره‌گر به دو رشته هستند • رشتة اول نام فايل را مشخص مي‌کند • رشتة دوم نحوة باز شدن را تعيين مي‌نمايد • تابع، آدرسي را برمي‌گرداند که اگر NULL نباشد، عمل باز کردن فايل موفقيت‌آميز بوده است • دسترسي به فايل، از اين پس، از طريق اين اشاره‌گر خواهد بود

  5. نحوة بازشدن فايل • براي هر فايل بازشده، اشاره‌گري به محلي که دسترسي بعدي از آن نقطه صورت مي‌گيرد در نظر گرفته مي‌شود • فايل بازشده مي‌تواند براي خوانده/نوشته شدن باز شود • اين موضوع بر رفتار در صورت موجود نبودن فايل مشخص شده تأثير مي‌گذارد

  6. نوع فايل • در انتهاي متغير روش باز کردن در تابع fopen ، نوع رفتار بر اساس محتويات فايل مي‌تواند آورده شود • b معرف فايل باينري است : rb ، a+b ، wb+ • t معرف فايل متن text است. در اين صورت کد EOF معرف انتهاي فايل است : rt، a+t، wt+ • برخي ازکدهاي ديگر متن نيز ممکن است تفسير و مورد استفاده واقع شوند • انتهاي فايل از طريق مقدار حجم فايل نيز مي‌تواند تشخيص داده شود (در حالت باينري)

  7. مثال • FILE *fptr1, *fptr2; • fptr1=fopen(“myfile.dat”,”r”); • if (!(fptr2=fopen(“mnq.xyz”,”w+”))){ • printf(“can not open file”); • printf(“program terminated”); • return(1); • } • for(inti=0; i<10; i++){…

  8. بستن فايل / تخلية بافر • fclose(fptr1); • fcloseall(); • ممکن است نياز باشد آخرين تغييرات اعمال شده در فايل، که ممکن است تنها در بافر اعمال شده باشد، در فايل اصلي نيز اعمال شود • fflush (fptr1); • flushall();

  9. فايلهاي باز موجود در کامپيوتر بصورت پيش‌فرض • هنگام روشن شدن هر کامپيوتري، تعدادي فايل بصورت پيش‌فرض باز مي‌شوند که عبارتند از • stdin • stdout • stderr • stdprn • stdaux

  10. انتقال داده به/از فايل • به نوع اطلاعاتي که در فايل ذخيره مي‌شود ربط دارد • در برخط از فايلها ساختار اطلاعات متني است • حتي ممکن است اطلاعات عددي/مقادير به صورت متني ذخيره شوند • formatted output • در ساير فايلها اطلاعات در قالب اصلي متغيرها ذخيره شوند • ممکن است ساختار اطلاعات بصورت ترکيبي باشد • در اين صورت بايد موقعيت هر نوع داده در فايل طي قراردادي مشخص شود

  11. ورود و خروج فرمت‌دار • کلية توابع فرمت‌دار قبلي براي تبادل داده با فايل وجود دارند • اين توابع به کدهاي فايل (مانند EOF) حساس هستند • توابع خروجي در انتهاط فايل EOF مي‌نويسند • توابع ورودي، در صورت رسيدن به انتهاي فايل، NULL برمي‌گردانند • fprintf, fscanf, fgets, fputs, fgetc, fputc • while(!feof) fputs(fgetc(fptr3)+4, fptr1); • b=fgets(a, 45, fptr2); • fprintf(fptr1, “%4d”, k); • fscanf(fptr2, “%d”, &k);

  12. توابع مختلف • feof(fptr1) انتهاي فايل فرمت‌دار را پيدا مي‌کند • تست ميکند در موقعيت فعلي EOF قرار دارد يا نه • rewind(fptr1)اشاره‌گر به محل دسترسي را به ابتداي فايل مي‌برد • ferror(fptr1) مشخص مي‌کند آخرين عمل انجام شده روي تابع داده شده موفقيت‌آميز بوده است يا نه • (نام فايل) removeفايل را حذف (delete) مي‌کند

  13. ذخيره/خواندن مقادير در قالب اصلي متغيرها • fread(buffer1, 4, 250, fptr1); • fwrite(buffer2, 2, 112, fptr2); • fread(buffer1, sizeof(mystruct), 1120, fptr3); • fseek(fptr1, 12, SEEK_CUR); • //SEEK_END, SEEK_SET

More Related