فی ژوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

فی ژوو

مرجع دانلود فایل ,تحقیق , پروژه , پایان نامه , فایل فلش گوشی

دانلودمقاله انواع فایل از نظر نوع اطلاعات

اختصاصی از فی ژوو دانلودمقاله انواع فایل از نظر نوع اطلاعات دانلود با لینک مستقیم و پر سرعت .

 

 

 


داده ها ممکن است در فایل به دو صورت ذخیره شوند:1ـ اسکی یامتن(text) 2ـ بانیری(binary)
این دو روش ذخیره شدن داده ها در موارد زیر با یکدیگر تفاوت دارند:
1ـ تعیین انتهای خط
2ـ تعیین انتهای فایل
3ـ نحوه ذخیره شدن اعداد بر روی دیسک
در فایل متنی اعداد به صورت رشته أی از کاراکتر ذخیره می شوند ولی در فایل بانیری اعداد به همان صورتی که در حافظه قرار می گیرند بر روی دیسک ذخیره می گردند.
در فایل متنی، کاراکتری که پایان خط را مشخص می کند در حین ذخیره شدن بر روی دیسک باید به کاراکترهای CR/LF باید به کاراکترها تعیین کننده پایان خط تبدیل شوند و بدیهی است که این تبدیلات مستلزم صرف وقت است. لذا دسترسی به اطلاعات موجود در فایلهای متنی کندتر از فایلهای بانیری است. اختلاف دیگر فایلهای متنی و بانیری در تشخیص انتهای فایل است. در مورد روش ذخیره فایل ها طول فایل توسط سیستم نگهداری می شود و انتهای فایل با توجه به این طول مشخص می گردد در حالت متنی کاراکتر 1A ( در مبنای 16) و با 26( در مبنای 10) مشخص کننده انتهای فایل است( این کاراکتر با فشار دادن کلیدCTRL به همراه کلیدZ تولید می‌شود.) در حین خواندن داده ها فایل ها متنی وقتی کنترل به این کاراکتر ها رسید، بیانگر این است که داده های موجود در فایل تمام شده اند. در فایل بانیری ممکن است عدد 1A (در مبنای 16) و یا 26(در مبنای 10) جزئی از اطلاعات بوده بیانگر انتهای فایل نباشد. لذا نحوه تشخیص انتهای فایل در فایل بانیری با فایل متنی متفاوت است.

 

سازمان فایل
منظور از سازمان فایل این است که اطلاعات در فایل چگونه ذخیره می شوند و سپس به چه روشهایی مورد بازیابی قرار می گیرند. به عبارت دیگر قانون حاکم بر نحوه ذخیره و بازیابی داده ها را در فایل، سازمان فایل گویند.
در این فصل به دو سازمان فایل پرداخته می شود:
1ـ سازمان فایل ترتیبی(scquenital)
2ـ سازمان فایل تصادفی(random)
در سازمان فایل ترتیبی، رکوردها بهمان ترتیبی که از ورودی خوانده می شوند در فایل قرار می گیرند و در هنگام بازیابی به همان ترتیب که در فایل ذخیره شده اند مورد
بررسی قرار می گیرند.
فایل های ترتیبی معمولاً دارای یک فیلد کلید هستند( فیلد کلید، فیلدی است که به عنوان شاخص رکورد مورد استفاده قرار می گیرد.) و بر اساس آن مرتب می باشند. در سازمان فایل تصادفی، به هر رکورد یک شماره اختصاص می یابد لذا اگر فایل دارای n رکورد باشد رکوردها 1 تاn شماره گذاری خواهند شد. وقتی که رکوردی در فایلی با سازمان تصادفی قرار گرفت محل آن توسط یک الگوریتم پیدا کننده آدرس که با فیلد کلید ارتباط دارد مشخص می شود. در این صورت دو رکورد با فیلد کلید مساوی، نمی توانند در فایل تصادفی وجود داشته باشند. در سازمان فایل تصادفی مستقیماً می توان به ر رکورد دلخواه دسترسی پیدا کرد.( بدون اینکه رکوردهای قبل خوانده شوند.)

 

باز کردن فایل
هر فایل قبل از اینکه بتواند مورد استفاده قرار گیرد باید باز شود. مواردی که در حین باز کردن فایل مشخص می شود عبارتند از:
1ـ نام فایل
2ـ نوع فایل از نظر ذخیره اطلاعات متنی یا بانیری
3ـ نوع فایل از نظر ورودی ـ خروجی( آیا فایل فقط به عنوان ورودی است. آیا فقط خروجی یا هر دو)
یک فایل ممکن است طوری باز شد که فقط عمل نوشتن اطلاعات بر روی آن مجاز باشد. به چنین فایلی، فایل خروجی گفته می شود. اگر فایل طوری باز گردد که فقط عمل خواندن اطلاعات از آن امکان پذیر باشد به چنین فایلی، فایل ورودی گفته می شود. اگر فایل طوری باز شود که هم عمل نوشتن اطلاعات بر روی آن مجاز باشد و هم عمل خواندن اطلاعات از آن، به چنین فایلی ورودی ـ خروجی گفته می شود. اگر فایلی قبلاً وجود داشته باشد و به عنوان خروجی باز گردد اطلاعات قبلی آن از بین می رود. برای باز کردن فایل از تابع fopen() استفاده می گردد. این تابع که در فایل stdio.h قرار دارد به صورت زیر به کار می رود:
FILE* fopen(char *filename,*mode)
در این الگوfilename به رشته أی اشاره می کند که حاوی نام فایل و محل تشکیل یا وجود آن است. نام فایل داده از قانون نام گذاری فایل برنامه تبعیت می کند و شامل دو قسمت نام و پسوند است. بهتر است پسوند فایل داده،dat انتخاب گردد. محل تشکیل یا وجود فایل می تواند شامل نام درایو و یا مسیر موجود روی دیسک باشد.mode مشخص می کند که فایل چگونه باید باز شود( ورودی و یا خروجی و یا ورودی ـ خروجی) مقادیری که می تواند به جای mode در تابعfopen( ) قرار گیرند. همراه با مفاهیم آنها در جدول زیر:
mode مفهوم
r(r t) فایلی از نوع Text را به عنوان ورودی باز می کند.
w(wt) فایلی از نوع Text را به عنوان خروجی باز می کند.
a(at) فایلی را طوری باز می کند که بتوان اطلاعاتی را به انتهای آن اضافه نمود
(rb) فایلی از نوع بانیری را به عنوان ورودی باز می کند.
wb فایلی از نوع بانیری را به عنوان خروجی باز می کند.
ab فایل موجود از نوع بانیری را طوری باز می کند که بتوان اطلاعات را به انتهای آن اضافه نمود.
r+(r+t) فایل موجود از نوع Text را به عنوان ورودی و خروجی باز می کند.
w+(w+t) فایلی از نوع Text را به عنوان ورودی و خروجی باز می کند.
a+(a+t) فایل موجود از نوع Text را به عنوان ورودی و خروجی باز می کند.
r+b فایل موجود از نوع بانیری را به عنوان و خروجی باز می کند.
w+b فایل از نوع بانیری را به عنوان ورودی و خروجی باز می کند.
a+b فایل از نوع بانیری را به عنوان ورودی و خروجی باز می کند.
برای باز کردن فایل باید یک اشاره گر از نوع فایل تعریف گردد تا به فایلی که توسط تابع fopen باز می شود اشاره نماید. اگر فایل به دلایلی باز نشود این اشاره گر برابر با null خواهد بود. به عنوان مثال دستورات زیر را در نظر بگیرید:
(1) FILE*fp
(2) ---
دستور 1، متغیر fp را از نوع اشاره گر فایل تعریف می کند و دستور 2، فایلی به نام text را بر روی درایو A ایجاد مینماید.( زیرا حالت “w” ، فایل را به صورت خروجی باز می کند.)FILE ماکرویی در فایل stdio.h است. برای تشخیص اینکه آیا فایل با موفقیت باز شده است یا خیر می توان اشاره گر فایل را Null مقایسه کرد.(Null ماکرویی است که در فایل stdio.h تعریف شده است و با حروف بزرگ به کار می‌رود) اگر اشاره گر فایل برابر با Null باشد بدین معنی است که فایل باز شده است:
if((fp=fopen(“A:test”,”w”))==Null{
print f(“can not open file \n”);
exit(0);
}
بستن فایل
پس از اینکه برنامه نویس کارش را با فایل تمام کرد باید آن را ببندد. بستن فایل توسط تابع fclose( ) انجام می شود که دارای الگوی زیر است:
int fclose(FILE * fp)
در الگوی فوق،fp به فایلی اشاره می کند که باید توسط fclose ( ) بسته شود. به عنوان مثال، دستورfclose (p) فایلی را که p به آن اشاره می کند می بندد. اگر چندین فایل به طور همزمان در برنامه باز باشند می توان آنها را با تابعfcloseall( ) بست. این تابع به صورت زیر به کار می رود:
fcloseall( );
ورودی ـ خروجی کاراکترها
برای نوشتن یک کاراکتر در فایل، از توابع fputc( ),putc( ) استفاده می شود. عملکرد این دو تابع یکسان است. تابع putc( ) در گونه های جدیدfputc( ),C در گونه های قدیمیC وجود داشته است. سرعت تابعputc( ) از تابعfputc( ) بیشتر است. لذا در اینجا از تابع putc( ) استفاده می شود الگوی این تابع به صورت زیر است:
int putc (int ch,FILE*fp)
در الگوی فوق،ch کاراکتری است که باید در فایل نوشته شود وfp اشاره گری از نوع فایل است که مشخص می کند کاراکتر مورد نظر باید در چه فایلی نوشته شود.
برای خواندن کاراکترها از فایل، می توان از دو تابعfgetc( ),getc( ) استفاده نمود. نحوه بکارگیری این دو تابع یکسان است. تابعfgetc( ) در گونه های قدیمی getc( ),C در گونه های جدید C وجود دارد. سرعت اجرای تابعgetc( ) از تابع fgetc( ) بیشتر است، لذا در اینجا از تابع getc( ) استفاده می شود. الگوی این تابع به صورت زیر است:
int getc(FILE* fp)
در الگوی فوق fp اشاره گری است که مشخص می کند کاراکتر مورد نظر از کدام فایل باید خوانده شود.
در مورد خواندن و نوشتن داده ها بر روی فایل باید به نکات زیر توجه داشت:
1ـ وقتی کاراکترهایی بر روی فایل نوشته می شوند. باید مکان بعدی، که کاراکتر آتی در آنجا قرار می گیرد مشخص باشد؛ همچنین وقتی که کاراکترهایی از فایل خوانده می شوند باید مشخص باشد که تاکنون تا کجای فایل خوانده شده است و کاراکتر بعدی از کجا باید خوانده شود. برای این منظور، سیستم از یک متغیر به نام“ موقعیت سنج فایل”(file position) استفاده می کند که با هر دستور خواندن و نوشتن بر روی فایل مقدار این متغیر به طور اتوماتیک تغییر می کند، تا موقعیت فعلی فایل را مشخص نماید. لذا عمل نوشتن بر روی فایل و عمل خواندن از روی آن، از جایی که این متغیر نشان می دهد، شروع می شود.
2ـ در هنگام خواندن داده ها از فایل باید بتوان انتهای فایل را تست نمود؛ یعنی در برنامه باید بتوان این تست را انجام داد که اگر در حین خواندن داده ها از فایل“ موقعیت سنج فایل” به انتهای فایل رسید دستور خواندن بعدی صادر نگردد؛ چرا که در غیر این صورت، سیستم، پیام خطایی را مبنی بر نبودن اطلاعات در فایل صادر می‌کند.

 

 

 

فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد

تعداد صفحات این مقاله   38 صفحه

پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید


دانلود با لینک مستقیم


دانلودمقاله انواع فایل از نظر نوع اطلاعات
نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.