www.zeitoonisp.com

www.zarbook.com

www.zeitoonisp.com

www.zarbook.com

کار با فایل ها در ویژال بیسیک

بازکردن فایل:

هر برنامه ی ویژال بیسیک قبل از این که بتواند داده هایی را زا روی فایل بخواند یا بر روی آن بنویسد ، باید با استفاده از حکم Open آن را باز کند.

قالب حکم Open  به صورت زیر است.

Open strFileName For Mode as #intFileNumber

StrFileName : یک متغیر رشته ای است که نام فایل را در بردارد.(آدرس فایل)

توجه : اگر این فایل در پوشه جاری برنامه است فقط لازم است در متغیر StrFileName نام فایل را بنویسید و نیاز به نوشتن نام کامل(آدرس فایل) نیست.

Mode : به برنامه دقیق می گوید که چه کاری می خواهد با فایل انجام دهد.که یکی از مقادیر زیر می تواند باشد.

Input : اگر Mode را Input قرار دهید به این معناست که می خواهید اطلاعات درون آن را بخوانید.در صورتی که فایل وجود نداشته باشد برنامه پیغام خطا می فرستد.

Output : اگر Mode را Output قرار دهید به این معناست که می خواهید اطلاعاتی را در یک فایل بنویسید.اگر فایل وجود نداشته باشد ویژال بیسیک آن را ایجاد می کند.اگر این فایل از قبل وجود داشته باشد ، ویژال بیسیک ابتدا آن را پاک می کند سپس تحت همان نام ،فایل جدیدی ایجاد می کند و داده های برنامه را در فایل جدید می نویسد.

Append : در این حالت می خواهید اطلاعاتی را در فایل بنویسید ، اما در عین حال نمی توانید اطلاعات قبلی فایل پاک شود.به بیان دیگر می خواهید به محتویات یک فایل چیزی اضافه کنید.در صورتی که فایل وجود نداشته باشد ویژال بیسیک آن را ایجاد می کند تا برنامه ی شما قادر به نوشتن داده ها در فایل باشد.

#intFileNumber : مشخص کننده ی یک عدد است.البته علامت # اختیاری است(در نسخه های قبلی ویژال بیسیک این علامت اجباری بود).این مقدار باید عددی بین 1 تا 255 باشد در حقیقت حکم Open  ، فایل باز شده را به این عدد منسوب می کند و از این به بعد فایل را با آن عدد می شناسد.تا هنگامی که با استفاده از احکام بستن فایل ، فایل را نبندید ; این عدد آزاد نمی شود و استفاده از آن برای باز کردن دیگر فایل ها غیر ممکن است.به این عدد گاهی اوقات کانال گفته می شود.

در ویژال بیسیک تابع ذاتی وجود دارد که می تواند شما را برای انتخاب اعداد آزاد یاری کند.آن تابع FreeFile() یک عدد برمی گرداند که هیچ فایلی به آن منسوب نیست.

مثال ها:

Open "D:Result.dat" For Output As #1

Open "D:Data.dat" For Input As #5

intFileNum = FreeFile

Open "D:News.dat" For Append As intFileNum

بستن فایل:

برای بستن فایل از حکم Close  استفاده کنید.هر فایلی که باز می کنید باید ببندبد.قالب این حکم به شکل زیر است.

Close #intFileNumber

می توانید با استفاده از فرمان زیر چند فایل را همزمان ببندید.

Close #1,#2

برای بستن تمام فایل های باز شده در برنامه هایتان کافی است حکم ‍Close  را به تنهایی فراخوانی کنید.

Close

برای پاک کردن فایل از حافظه از دستور Kill استفاده می کنند.

Kill "d:DataNews.dat"

نوشتن بر روی فایل:

برای نوشتن اطلاعات بر روی فایل احتمالا ساده ترین فرمان ، فرمان Write است . با استفاده از این حکم می توانید هر نوع دادهای که می خواهید بر روی فایلی که قبلا در مد Output یا Append باز شده و عدد منسوب آن را در دست دارید بنویسید.

قالب این حکم به شکل زیر است:

Write #intFileNumber , Var_Value

Var_Value : مقدار یا متغیری است که قصد نوشتن محتوای آن را درون فایل دارید.

برای این که نحوه عملکرد این حکم را بهتر متوجه شوید ، باید بدانبد هر فایل ، یک اشاره گر دارد . هنگامی که یک فایل را به قصد خواندن در مد Input باز می کنید.این اشاره گر در ابتدای فایل قرار می گیرد و هر بار که داده ای را از درون فایل می خوانید ، این اشاره گر به جلو حرکت می کند تا به انتهای فایل می رس.همین اتفاق در هنگام نوشتن اطلاعات می افتد هر بار که مقداری را درون فایل می نویسید،اشاره گر به جلو می رود.

با اجرای هر دستور Write  ، اطلاعات موجود در Var_Value در فایل نوشته می شود و اشاره گر به خط بعدی فایل می رود.

اگر این حکم را به صورت زیر صدا کنیم فقط یک خط خالی درون فایل ایجاد می شود.

Write #intFileNumber

با استفاده از این حکم می توانید چند داده را به طور همزمان در یک سطر از فایل بنویسید.

Write #intFileNumber , StrName , strFamily , intAge , binMarried

حکم رایت نکات خاصی را برای نوشتن انواع داده های مختلف رعایت می کند.

برای جداکردن متغیر های مختلف که در یک دستور Write  می نویسید از کاما(,)استفاده می کند.

بعد از نوشتن همه مقادیر ، اشاره گر فایل را به خط بعدی منتقل می کند.

در اطراف مقادیر رشته ای ; از علامت نقل قول استفاده می کند.

مقادیر تاریخ و ساعت را با فرمت زیر می نویسد:

# yyy-mm-dd hh:mm:ss #

اگر یکی از متغیرها پوچ باشد مقدار #Null#  را می نویسد.

مقادیر بولین را به صورت زیر در فایل می نویسد:

#True#

#False#

به ایت ترتیب دستور Write بالا مقداری مثل مقدار زیر را در فایل خواهد نوشت:

"Ali","Eskandari",35,#True#

همان طور که گفتیم دستور Write بعد از هربار اجرا اشاره گر فایل را به خط بعدی می برد.برای این که این اتفاق نیفتد می توان یک (;) در انتهای Write قرار داد.مثال:

Write StrName;

Write strFanily;

Write inyAge;

دستور دیگر نیز دستور Print است که مانند Write است قالب این حکم به صورت زیر است:

Print #intFileNumber, Var_Value

خواندن اطلاعات فایل:

حکم Input  داده را از فایل می خواند و داده های فایل را در متغیرها و کنترل های برنامه ذخیره می سازد.

قالب این حکم به صورت زیر است:

Input #intFileNumber, Variables

این دستور از فایلی که به منظور Input باز شده و به #intFileNumber منسوب شده است ، به تناسب نوع متغیر Variables داده را خوانده و در آن قرار می دهد.بعد از هر عمل خواندن اشاره گر به جلو می رود.

در هنگام خواندن ار فایل باید مراقب باشید که اشاره گر به انتهای فایل رسیده است یا نه.برای این کار می توانید از تابع   EOF(intFileNumber)  استفاده کنید.

این تابع یک تابع ، Boolean است که در صورتی که اشاره گر به انتهای فایل رسیده باسد ، مقدار True  یر می گرداند.

به عنوان مثال کد زیر نحوه استفاده از این تابع را نشان می دهد:

 

Input #1, VariableList

Do Until (EOF(1) = True)

    Input #1, VariableList

Loop

حکم زیر ، اطلاعات درون یک فایل را خط به خط می خواند و درون یک متغیر رشته ای می نویسد.

قالب این حکم  به شکل زیر است:

Line Input #intFileNumber, StrLine

نظرات 2 + ارسال نظر
مهدی پنج‌شنبه 22 آذر‌ماه سال 1386 ساعت 10:26 ق.ظ

این با حال بود بیشتر از این کارا بکن

مسعود راجی پنج‌شنبه 5 دی‌ماه سال 1387 ساعت 08:37 ب.ظ

سلام
آنچه نوشته اید فرامین ویژوآل بیسیک منسوخ شده (نشر ۶.۰) برای گشودن و بستن و خواندن و نوشتن فایلهای غیرصوتی، غیرتصویری و غیر ویدئوئی یعنی فایلهای متن است. آیا این فرامین در ویژوآل بیسیک دات نت به همین شکل قابل استفاده است؟

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد