ايران ويج

نسخه‌ی کامل: مديريت خطاهاي فلاپي
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام خدمت همه اساتيد محترم .
من مي خواستم سورسي رو داشته باشم که اين موارد رو در مورد فلاپي چک کنه :
1 - آيا ديسکت در فلاپي درايو هست يا نه ؟
2 - آيا ديسکت موجود درفلاپي درايو write protect هست يا نه ؟
3 - ايا ديسکت فرمت شده است يا نه ؟

با تشکر
hatefsoltani نوشته است:1 - آيا ديسکت در فلاپي درايو هست يا نه ؟
براي اين كار راحت ترين راه استفاده از FileSystemObject هست
ازمسير زير اون رو به برنامه اضافه كن
project\refrences ...\microsoft scrippting runtime
حالا اين كد رو اضافه كن
کد:
Dim FSO As New FileSystemObject
Private Sub Command1_Click()
If FSO.GetDrive("A:\").IsReady = True Then MsgBox "Drive is ready"
End Sub

hatefsoltani نوشته است:2 - آيا ديسکت موجود درفلاپي درايو write protect هست يا نه ؟
براي اين كار ميتوني يكي دوبايتي داخل ديسك بنويسي يا فايل الكي داخلش كپي كني اگر error داد كه protect شده در غير اين صورت بازه
براي اين روش هاي زيادي هست كه يكي از اونا همين FSO هست ، مي توني با متد copyfile يا TextStream اين كار رو انجام بدي
کد:
Dim FSO As New FileSystemObject
Private Sub Command1_Click()
FSO.CopyFile "c:\test.txt", "a:\test.txt"
End Sub

hatefsoltani نوشته است:3 - ايا ديسکت فرمت شده است يا نه ؟
در مورد اين يكي فكر مي كنم ديسك فرمت شده باشه يا نه باز هم اطلاعات مي توني داخلش بنويسي
به هر حال چون من فلاپي درايو ندارم نميتونم تستش كنم
موفق باشي .Question
با تشکر از شما دوست عزيز
ممنونم از شما مشکل اولم حل شد . ولي هنوز نمي دونم چطور write product بودن ديسکت رو چک کنم . آخه موقع کپي فايل در ديسکت هم خطا ميده .

با تشکر
وقتي كه ديسكت در برابر نوشتن محافظت شده باشه بايد خطا بده ، و فكر مي كنم شماره خطائي مجزا داشت
باز هم مي گم من فلاپي درايو ندارم و نمي تونم تستش كنم ، دوستاني كه اين امكان رو دارن لطفا كمك كنند
اما اگر در برابر نوشتن محافظت نشده باشه : بايد چك كني يا مشكل از مسير مبدا ، حجم فايل ، خرابي ديسكت يا .....
با چندتا ديسكت ديگه هم تست كن ، اگر مشكل از اينايي كه گفتم نبود ، سورس برنامه رو بيار تا دوستان كمك كنند
سلام

شما برای مدیریت هر خطا به راحتی می تونی تمام احتمالات رو چک کنی!
شرایط بد رو برای برنامه بساز و لیست خطاها رو چک کن. (البته می تونی از MSDN لیست خطا ها رو بدست بیاری)


کد:
Dim FSO As New FileSystemObject
Private Sub Command1_Click()
  On Error Goto ErrHandler
  FSO.CopyFile "c:\test.txt", "a:\test.txt"
Exit Sub

ErrHandler:
   If Err.Number=57 then
     msgbox "please insert disk in drive a"
  else if Err.Number=58 then
     msgbox "disk is write protected"
  end if
End Sub

شماره خطاهای نوشته شده فقط مثال هستند و شما خودت باید اونها رو بدست بیاری.
ببخشید من کد رو الان نوشتم چون خیلی وقته که روی سیستمم VB ندارم. امیدوارم مشکل Syntax نداشته باشه.
در هر صورت این روشی برای کار با درایو هست. امیدوارم کمکت کنه.

موفق باشید
;-)
با سلام
ممنونم . مشکل من با همين کد آخري حل شد . کد write protected هم 70 بود .
با تشکر از همه اساتيد و بزرگواران