توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : فایل ترتیبی
lale_s
01-02-2010, 01:36 PM
سلام دوستان
چطوری میشه یه فایل ترتیبی رو با ویژوال بیسیک پیاده سازی کرد؟
ممنون
سلام دوستان
چطوری میشه یه فایل ترتیبی رو با ویژوال بیسیک پیاده سازی کرد؟
ممنون
اما دراين يادداشت به بررسي فايلهاي ترتيبي در VB.NET مي پردازيم.
درواقع فايل ها را ازنظر ساختاربه دوقسمت تقسيم مي كنيم:
1- فايلهاي ترتيبي
2- فايلهاي تصادفي
درفايل هاي ترتيبي ركوردها به همان ترتيبي كه ازورودي خوانده مي شوند درفايل قرارمي گيرند ودرهنگام خواندن فايل نيز بايد به همان ترتيبي كه ذخيره شده اند خوانده شوند.
اما درفايل هاي تصادفي مي توان به صورت مستقيم به ركوردي دسترسي پيداكرد وآنرا خواند.
نكته : درفايل ترتيبي امكان استفاده از ساختاروجود ندارد اين مورد درفايل تصادفي توضيح داده مي شود.
امادراين يادداشت به بررسي فايل ترتيبي مي پردازيم وفايل تصادفي رابه يادداشتي ديگرموكول مي كنيم.
حال مي خواهيم ببينيم چگونه مي توان يك فايل ترتيبي ايجاد كرد اطلاعاتي درداخل آن نوشت آطلاعات آنرا خواند وهمچنين چگونه مي توان آن فايل را حذف كرد.
ايجادكردن ويابازكردن يك فايل ترتيبي:
براي ايجاد كردن ويا بازكردن يك فايل ترتيبي ازدستور FileOpen استفاده مي كنيم.
اين دستور سه آرگومان دريافت مي كند:
1- درآرگومان اول بايد يك شماره به فايل خوداختصاص دهيد وازاين به بعد با استفاده ازآن شماره مي توان اطلاعات درون فايل را خواند يا نوشت وهمچنين كارهاي ديگررا نيز با استفاده از آن شماره انجام داد اين شماره تازماني كه فايل بسته نشده است آزاد نمي شود.
2- در آرگومان دوم مسير فايل را به همراه نام فايل مشخص مي كنيد:
مثلا اگرمي خواهيد فايل a رادر درايو D ذخيره كنيد مي نويسيد D:\a.txt
اما اگرمسير فايل رامشخص نكنيد وفقط نام فايل رابنويسيد فايل درهمان محلي كه فايل اجرايي برنامه قراردارد ذخيره مي شود.
يعني اگربنويسيد a.txt فايل در مسيرفايل اجرايي برنامه ايجاد مي شود.
3- درآرگومان سوم Mode فايل رامشخص مي كنيد كه مي تواند مقاديرزير باشد:
الف : Output: فايلي ازنو ايجادمي كند اگر فايل وجود نداشته باشد كه ايجادمي كند اگرهم وجود داشته باشد آنراابتدا حذف مي كند وسپس
دوباره فايل راايجاد مي كند.
ب : Input: فايل رابراي خواندن بازمي كند اگر فايل وجود نداشته باشد باپيغام خطا روبرو مي شويد.
ج: Append: اگربخواهيد اطلاعاتي رابه فايل اضافه كنيد ازاين مد استفاده كنيد اگر فايل وجود نداشته باشد آنرا ايجاد مي كند.
د: Random : فايل رابه صورت تصادفي بازمي كند .(همان فايل تصادفي)
ه: Binary: درحالت باينري بازمي كند.
دراين يادداشت همان سه حالت اول گفته مي شود دوحالت آخررادر فايل تصادفي توضيح مي دهيم.
نوشتن برروي فايل:
اگرفايل رادرحالتهاي Output ويا Append بازكرده باشيد مي توانيد داخل آن با استفاده ازدستورPrint عباراتي رابنويسيد.
اين دستوردوآرگومان دارد كه در آرگومان اول شماره فايلي راكه بازكرده ايد مي نويسيد ودر آرگومان دوم رشته موردنظرخودرا.
بستن فايل :
پس از بازكردن فايل وانجام كارهاي موردنظر برروي آن بايد فايل رابست كه ازدستورزير استفاده كنيد:
FileClose(شماره فايل)
به اين ترتيب فايل موردنظر بسته مي شود اما اگر چندين فايل بازكرده ايد ومي خواهيد همه آنها را يكجا ببنديد ازدستور FileClose() استفاده كنيد. البته مي توان اين دستوررا براي يك فايل نيزبكاربرد.
مثال 1: فايلي راباز كرده وجمله test را داخل آن بنويسيد:
FileOpen(1,"h:\a.txt",OpenMode.Append)
Print(1,"test")
FileClose(1)
خواندن فايل :
براي خواندن فايل بايد فايل رادرحالت Input بازكرد وازدستور Input براي خواندن فايل استفاده كرد:
اين دستوردو آرگومان دارد كه آرگومان اول شماره فايل وآرگومان دوم مامتغيري را دريافت مي كند. كه اين متغير بسته به محتويات مي توان شامل همه نوعهاي VB باشد.
مثال 2 : به كمك اين مثال فايل قبلي كه ايجاد كرديم را مي خوانيم:
Dim s As String
FileOpen(1,"h:\a.txt",OpenMode.Input)
Input(1,s)
messagebox.show(s)
FileClose()
حذف فايل:
براي حذف فايل بايد ازدستورزير استفاده كرد:
Kill(مسيرفايل)
نكته : دستورات مثال 2 را بعد ازدستورات مثال 1 دررويداد كليك كنترل باتن نوشته وبرنامه را اجرا كنيد سپس شروع به كليك كردن كنترل باتن كنيد مي بينيد هربار كلمه test به فايل اضافه شده وبه شما نشان داده مي شود ولي اگرشما مي خواهيد test كه به فايل اضافه مي شود در واقع درخط جديدي ازفايل وارد شود كافي است كلمه "," رابه آخرعبارت text اضافه كنيد يعني بنويسيد:
Print(1,"test,")
دراين صورت هربار كه كنترل باتن رافشارمي دهيد كلمه test به خط جديدي ازفايل اضافه مي شود.
حال براي خواندن فايل به طور كامل بايد ازحلقه زير استفاده كنيد:
Whilw Not EOF(1)
Input(1, s)
messagebox.show(s)
End While
نكته : دستور EOF(شماره فايل) زماني True مي شود كه به پايان فايل رسيده باشد.
تغيير نام فايل:
با استفاده ازدستور Rename مي توان نام فايل راتغيير داد:
Rename("h:\a.txt", "h:\b.txt")
نكته : در VB تابعي به نام FreeFile وجود دارد كه عددي رابرمي گرداند كه هيچ فايلي به آن عدد منسوب نيست.
نكته : عددي كه براي هرفايل انتخاب مي كنيد بايد درمحدوده 0 تا 255 باشد.
خط به خط خواندن فايل :
در VB دستوري به نام LineInput وجود دارد كه به شما امكان خط به خط خواندن فايل رامي دهد اين دستور يك آرگومان دارد كه شماره فايل رادريافت مي كند و مقدار برگشتي آن ازنوع رشته است كه همان محتواي خط فايل است براي استفاده ازاين دستوربه شكل زير عمل كنيد:
FileOpen(1, "h:\q.txt", OpenMode.Input)
While Not EOF(1)
ListBox1.Items.Add(LineInput(1))
End While
FileClose(1)
دستورات بالا ابتدا فايل رادر حالت خواندن باز كرده وتازماني كه فايل به آخرنرسيده اطلاعات آن راخط به خط خوانده ودر يك ليست باكس نمايش مي دهد.
نكته : خودتان فايل q رادر درايو h يا هردرايوي بسازيد و درآن اطلاعاتي رادرچند خط بنويسيد وسپس برنامه را آزمايش كنيد.
دستور Seek :
اين دستور بيشتر در فايلهاي تصادفي كاربرد دارد اما به دليل كاربرد كوچكي كه در فايل هاي ترتيبي دارد آن راتوضيح مي دهيم.
اين دستور درفايل ترتيبي به اين صورت كارمي كند كه دو آرگومان مي گيرد آرگومان اول شماره فايل و آرگومان دوم عددي است كه مكان نما را به اندازه آن عدد در فايل جابجا مي كند.
دستورات زير را آزمايش كنيد:
Dim c As String
FileOpen(1, "h:\q.txt", OpenMode.Input)
Seek(1, 2)
Input(1, c)
TextBox1.Text = c
FileClose()
درواقع دستور Seek(1,2) مكان نما را درفايل 1 به اندازه 2 كاراكتر جلو مي برد ودر صورتي كه تعداد كاراكترهاي خط اول فايل كوچكتر از مقدار آرگومان دوم تابع باشد مكان نما به خط دوم منتقل مي شود.
به پايان بحث فايلهاي ترتيبي رسيديم در آينده درمورد فايل تصادفي توضيح مي دهيم.
موفق باشيد.
منبع : [Only registered and activated users can see links]
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.