+ ارسال نظر
نمایش نتایج: از 1 به 1 از 1

موضوع: کار با فایل در ویژوال بیسیک

  1. #1
    مدیرکل انجمنهای نور آسمان vorojax آواتار ها
    تاریخ عضویت
    Jun 2008
    محل سکونت
    همشهری حضرت عشق
    نوشته ها
    7,305
    تشکر
    6
    تشکر شده 0 بار در 0 ارسال

    پیش فرض کار با فایل در ویژوال بیسیک

    [size=medium]
    کار با فایل در ویژوال بیسیک
    ار با فایل در ویژوال بیسیک - بخش اول
    مقدمه
    بعلت عدم وجود اشاره گر در ویژوال بیسیک عملیات کار با فایلها در آن
    نسبتاً ساده می باشد .
    بطور کلی فایلها بر دو نوع هستند :
    این فایلها فقط شامل کاراکترهاي اسکی و : Text File 1 - فایلهاي متنی
    برخی کاراکترهاي خاص مانند انتهاي خط و انتهاي فایل هستند .
    شامل هر نوع کاراکتري می توانند : Binary File 2 - فایلهاي باینري
    باشند و کاربردهاي گسترده اي دارند مانند بانک هاي اطلاعاتی ، فایلهاي
    اجرائی ، فایلهاي گرافیکی و غیره
    ویژوال بیسیک می تواند با هر دو نوع فایل کار کند .
    چگونگی باز کردن فایلها
    قبل از اینکه بتوان عملیات ورودي/خروجی را روي یک فایل انجام داد
    ابتدا بایستی آنرا باز کرد . باز کردن فایلها در ویژوال بیسیک توسط
    انجام می شود . فرمت کلی این دستور بصورت زیر است Open دستور
    :
    Open filename [For mode] [Access access][lock] As
    filenumber [Len=reclen]x[#]
    [ پارامترهاي داخل کروشه اختیاري هستند . ]
    نام فایلی است که می خواهیم آنرا باز کنیم . filename
    حالت باز کردن فایل است . این حالتها عبارتند از : mode
    فایل بعنوان ورودي باز می شود . : Input -
    فایل بعنوان خروجی باز می شود . : Output -
    فایل از نوع باینري باز می شود . : Binary -
    فایل طوري باز می شود که بتوان به انتهاي آن چیزي : Append -
    اضافه کرد .
    Random -
    نوع دسترسی به فایل را مشخص می کند . انواع دسترسیها access
    عبارتند از :
    خواندن فایل : Read -
    نوشتن در فایل : Write -
    خواندن و نوشتن فایل : ReadWrite -
    نوع دسترسی سایر برنامه ها به این فایل را مشخص می کند . lock
    انواع دسترسیها عبارتند از :
    دسترسی اشتراکی : Shared -
    Lock Read -
    Lock Write -
    Lock Read Write -
    عددي است که ویژوال بیسیک از آن براي دسترسی به filenumber
    فایل استفاده می کند .این عدد بایستی براي هر فایل منحصر بفرد و بین
    1 تا 511 باشد . براي بدست آوردن اولین شماره آزاد می توان از تابع
    استفاده کرد . FreeFile
    طول بافر فایل است . این عدد بایستی از 32767 کو چکتر باشد . : reclen
    مشخص شده وجود نداشته و filename در صورتی که فایلی که توسط
    باز شده باشد Random و یا Output ،Binary ،Append فایل براي
    در اینصورت یک فایل جدید با این نام ساخته می شود .
    نادیده Len در صورتی که فایل بصورت باینري باز شده باشد پارامتر
    گرفته می شود .
    چگونگی بستن فایل
    استفاده می Close پس از پایان کار با فایل براي بستن آن از دستور
    کنیم . فرمت این دستور بصورت زیر است :
    Close #filenumber
    بدون هیچ پارامتري تمام فایلهاي باز را می بندد . Close دستور
    کار با دایرکتوري
    می توان نام فایلهاي موجود در یک Dir توسط دستور : Dir 1 - گرفتن
    دایرکتوري را بر اساس پارامترهایی که به آن می دهیم پیدا کنیم . براي
    مثال :
    Myfile=Dir$("c:\text\*.txt)"x
    را که C:\TEXT دستور فوق نام اولین فایل موجود در دایرکتوري
    قرار می دهد . اگر دستور فوق را Myfile باشد در متغیر txt پسوند آنها
    بدون پارامتر مجدداً اجرا کنیم نام دومین فایل برگرداننده می شد و الی
    آخر
    داراي یک پارامتر اختیاري است که نوع فایلهاي مورد نظر را نیز می Dir
    توان با آن مشخص نمود . مثال :
    Myfile=Dir$("c:\text\*.txt",vbNormal)x
    مقادیر ممکن این پارامتر عبارتند از :
    vbDirectory ، vbSystem ،vbHidden ،vbNormal
    ChDir 2 - تغییر دایرکتوري : براي تغییر دایرکتوري از دستور
    استفاده می شود مثال :
    ChDir "c:\windows\system32"x
    استفاده می ChDrive 3 - تغییر درایو : براي تغییر درایو از دستور
    شود مثال :
    ChDrive "E:"x
    MKDir 4 - ساخت دایرکتوري : براي ایجاد دایرکتوري جدید از دستور
    استفاده می شود مثال :
    MKDir "c:\MyFolder"x
    RmDir 5 - حذف دایرکتوري : براي حذف دایرکتوري از دستور
    استفاده می شود مثال :
    RmDir "C:\MyFoler"x
    کار با فایل در ویژوال بیسیک - بخش دوم
    خواندن از فایل :
    می توان Input Line و Input توسط دستورهاي : Input 1 - دستور
    محتواي فایلهاي متنی و باینري را خواند .
    به دو صورت بکار می رود : Input دستور
    Filenumber,ReadData# Input
    ReadData=Input(Charnum,Filenumber)x
    قرار می دهد . ReadData دستور اول کل یک فایل را خوانده و در متغیر
    Filenumber بایت از فایلی با شماره Charnum دستور دوم ، تعداد
    قرار می دهد . ReadData را خوانده و در متغیر
    این دو دستور تمام کاراکترهاي موجود در فایل را می خوانند . براي
    استفاده Line Input اینکه بتوان فایل را خط به خط خواند ، از دستور
    کنید :
    Filenumber,ReadData# Line Input
    بیشتر براي خواندن فایلهاي متنی استفاده Line Input البته از دستور
    می شود زیرا ممکنست در فایل باینري هیچ کاراکتر انتهاي خط (
    وجود نداشته باشد و یکباره کل فایل خوانده شود . ( CRLF
    از این دستور براي خواندن فایلهاي باینري با : Get 2 - دستور
    استفاده میشود : ( Random Access ) دسترسی تصادفی
    Get #Filenumber,[Recordnum%],ReadData
    را از فایلی با شماره Recordnum این دستور رکورد شماره
    قرار می دهد . علامت ReadData می خواند و در متغیر Filenumber
    اختیاري است و در Recordnum کروشه نشان می دهد که پارامتر
    صورتیکه ذکر نشود داده ها از رکورد بعدي فایل ( جائیکه اشاره گر فایل
    آنجا قرار دارد ) خوانده می شوند .
    نوشتن در فایل :
    توسط این دستور می توان اطلاعاتی را در فایل قرار : Print 1 - دستور
    داد :
    Print #FileNumber,WriteData
    را در فایلی با شماره WriteData دستور فوق محتویات متغیر
    می توان اطلاعات را Print می نویسد . بوسیله دستور FileNumber
    بصورت خط به خط در فایل نوشت براي مثال :
    Hello Visual Basic"+Vbcrlf",1# Print
    در ویژوال ( CRLF ) نشان دهنده کاراکتر انتهاي خط Vbcrlf عبارت
    بیسیک می باشد .

    این دستور براي نوشتن داده ها در فایلهاي باینري با : Put 2 - دستور
    دسترسی تصادفی بکار می رود :
    FileNumber,[Recordnum],WriteData# Put
    را در رکورد شماره WriteData این دستور محتویات متغیر
    قرار می دهد . Recordnum
    تعیین محل رکورد در فایلهاي با دسترسی تصادفی :
    براي منتقل کردن اشاره گر فایل به یک رکورد در یک فایل باینري با
    استفاده می شود . این دستور محل Seek دسترسی اتفاقی ، از دستور
    یک بایت را در فایل می گیرد و اشاره گر فایل را در آنجا قرار می دهد
    می توانند با این رکورد کار کنند : Get و Put بنابراین دستورات
    FileNumber,RecordNumber# Seek
    تشخیص انتهاي فایل :
    EOF براي اینکه متوجه شویم به انتهاي یک فایل رسیده ایم از دستور
    را بر می False یا True استفاده می کنیم . این دستور یکی از مقادیر
    گرداند که نشان می دهد به انتهاي فایلرسیده ایم یا نه . از این تابع در
    استفاده می شود : Do-While حلقه هاي
    EOF(FileNumer))x) Do While Not
    .
    .
    .
    Loop

    حلقه فوق تا زمانیکه فایل موردنظر به انتها نرسیده باشد اجرا خواهد
    شد .
    بدست آوردن طول یک فایل :
    می توان طول محتویات یک فایل را بدست آورد : LOF بوسیله دستور
    FileSize=LOF(FileNumber)x
    بدست آوردن محل اشاره گر فایل :
    می توان محل جاري اشاره گر فایل را بدست آورد . Loc توسط دستور
    اجرا شدن این دستور محل اشاره گر را تغییر نمی دهد :
    FilePosition=Loc(FileNumber)x
    کار با فایل در ویژوال بیسیک - بخش سوم
    سایر عملیات کار با فایل :
    استفاده می Kill 1 - حذف فایل : براي حذف یک یا چند فایل از دستور
    شود :
    Kill "C:\Temp\MyFile.txt"x
    C:\Temp\*.txt"x" Kill
    2 - انتقال فایل : براي انتقال یک فایل از یک دایرکتوري به دایرکتوري
    استفاده می شود . مبدا و مقصد بایستی روي یک Name دیگر از دستور
    درایو باشند . اگر دایرکتوري مبدا و مقصد یکی باشد فایل تغییر نام داده
    می شود :
    C:\Temp\File1.txt" To "C:\Temp2\File2.txt"x" Name
    3 - کپی کردن فایل : براي کپی کردن یک فایل از یک دایرکتوري به
    استفاده می شود : FileCopy دایرکتوري دیگر از دستور
    FileCopy "\File1.txt\ To "C:\Temp\File2.txt"x
    4 - بدست آوردن تاریخ و زمان آخرین تغییر فایل و یا زمان ایجاد فایل :
    استفاده می شود . ابتدا بایستی FileDateTime براي این کار از دستور
    تعریف کرده و سپس توسط این دستور Variant یک متغیر از نوع
    تاریخ و زمان موردنظر را استخراج کنیم :
    Variant Dim FileInfo As
    FileInfo=FileDateTime("C:\Temp\MyFile.txt")x
    5 - استخراج طول فایل : براي بدست آوردن طول یک فایل بر حسب بایت
    استفاده می شود : FileLen از دستور
    FileSize=FileLen("C:\MyFile.txt")x
    SetAttr 6 - تغییر صفت یک فایل : براي تغییر صفت یک فایل از دستور
    استفاده می شود . پارامترهاي این دستور عبارتند از :
    0 : فایل معمولی
    2 : فایل مخفی
    4 : فایل سیستمی
    FileNumber,FileAttrib SetAttr
    مقابله با خطاهاي کار با فایل :
    در زمان کار با فایلهاي احتمال زیادي وجود دارد که خطا بوجود آید .
    بنابراین بایستی در زمان کار با فایلها در صورت ممکن از روتینهاي

    مقابله با خطا استفاده کنیم . شایع ترین خطاهاي کار با فایل عبارتند از :
    52 : شماره یا نام فایل صحیح نیست
    53 : فایل پیدا نشد
    54 : حالت فایل صحیح نیست
    55 : فایل قبلاً باز شده
    58 : فایل از قبل وجود دارد
    59 : طول رکورد صحیح نیست
    61 : دیسک پر است
    62 : عبور از انتهاي فایل
    63 : شماره رکورد صحیح نیست
    70 : دسترسی ممنوع است
    71 : دیسک آماده نیست
    76 : مسیر پیدا نشد
    استفاده Select-Case در هنگام مقابله با خطا بهتراست از یک ساختار
    کنید :
    Err Select Case
    Case 71
    MsgBox "Drive is Not Ready"x
    End Select
    منبع:
    http://sheidaian.persianblog.com[/size]

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    محل سکونت
    Advertising world
    نوشته ها
    Many

     

    حرز امام جواد

     

+ ارسال نظر

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را دارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
کانال سپاه