منتدى فيجوال بيسك



نتائج مسابقة المقالات الربع الثاني 2010 - الإنتهاء: 27-09-10

أهلا بالضيف - الإنتهاء: 07-09-10

كاميليا - الإنتهاء: 31-10-10

عـودة للخلف   منتدى فيجوال بيسك > قسم أسئلة واستفسارات الأعضاء > قسم Visual Basic 6 وما قبله

قسم Visual Basic 6 وما قبله الأسئلة والنقاش حول Visual Basic 5, 6 للمبتدئين والمتقدمين

موضوع مغلق
 
أدوات الموضوع طريقة العرض
قديم 13-10-08   #1
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
Lightbulb تعامل مع الملفات بحرفية ب vb6

بسم الله الرحمان الرحيم

اخواني ابناء هذا المنتدى لقد لاحظت ان اسئلة كثيرة بين اركان هذا القسم تتمحور
حول التعامل مع الملفات و ادارة البيانات و حفظها على القرص الصلب للرجوع اليها كلما احتاجها
برنامجنا

و معلوم انه لا يمكن ان نكون مبرمجين جادين بدون الاحتراف في هذا المجال

و كنت انوي في الحقيقة ان اترجم لكم احد المقالات من المواقع الاجنبية ثم تراجعت
لاني افتقدت فيها روح البساطة و كذلك اردت لهذا المقال ان يكون بروح و شخصية [b]عربية[/B]
مناسبة لنا


انا بانتظار رايكم في هذا الموضوع للابتداء ب ه

اخوكم في الله يانس
__________________
An ASM coder has arrived
yanes غير متصل  
قديم 13-10-08   #2
محمد شريقي
مشارك متميز
 
تاريخ التسجيل: Apr 2008
المشاركات: 1,508
عدد مرات شكره للأعضاء: 10
تم شكره 541 مره في 349 مشاركه
قوة التقييم: 4
محمد شريقي is on a distinguished road

الأوسمة

الافتراضي

ابدأ ونحن معاك
الله يوفقك
__________________
تحياتي للجميع

وعذراً على الغياب
محمد شريقي غير متصل  
العضو التالي يشكر محمد شريقي على هذه المشاركة :
yanes (14-10-08)
قديم 13-10-08   #3
abed
مشارك متميز
 
تاريخ التسجيل: Oct 2007
المشاركات: 1,412
عدد مرات شكره للأعضاء: 37
تم شكره 123 مره في 91 مشاركه
قوة التقييم: 4
abed is on a distinguished road
الافتراضي

نسأل الله لك الثبات اخى
ابدأ وتوكل على الله
__________________
اللهم بلغنا رمضان
OoOoOoOoOoO oOoOoOoOoOo

......
abed غير متصل  
قديم 13-10-08   #4
الخبير
عضو متميز
 
تاريخ التسجيل: Aug 2008
المشاركات: 1,651
عدد مرات شكره للأعضاء: 132
تم شكره 273 مره في 167 مشاركه
قوة التقييم: 4
الخبير is on a distinguished road

الأوسمة

الافتراضي

نعم أخي أنت ابدأ ونحن كلنا معك بإذن الله
توكل على الله وابدء الموضوع
الخبير غير متصل  
قديم 13-10-08   #5
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
الافتراضي

شكرا لكم جميعا
لكن استغرب من الردود يعني الثلاثة اللي ردوا مش ناقصين وين مشاركات المبتدئين
اللي المفروض بكونوا اكثر اهنماما بهذا الدرس
ما علينا
__________________
An ASM coder has arrived
yanes غير متصل  
العضو التالي يشكر yanes على هذه المشاركة :
Hamza yanes (15-10-08)
قديم 13-10-08   #6
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
Lightbulb

بسم الله الرحمان الرحيم

سنخصص الجزء الاول للتعريف بخصائص ال FSO ثم سنتقدم بعد ذلك في الدرس


معلوم انه لا يمكن الحديث عن ادارة الملفات بفيجوال بيسك دون الحديث عن الفئة FSO
FILE SYSTEM OBJECT SCRIPTING
التابعة لمكتبة Microsoft Scripting Runtime و هي المكتبة التي اصدرتها مايكروسوفت لتلافي
النقص الذي يعيب الفيجوال بيسك 6 فيما يخص ادارة الاقراص و المجلدات و الملفات
يمكن اضافة هذه المكتبة لمشاريعنا عن طريق اضافة Reference : Microsoft Scripting Runtime
هذه المكتبة يتم تثبيتها افتراضيا مع الفيجوال بيسك

بمجرد اضافة المكتبة المذكورة يصبح بامكاننا انشاء كائن تابع للمكتبة FSO
الطريقة :
الرمز PHP:
Dim ObjFSO As Scripting.FileSystemObject
set ObjFSO
=New Scripting.FileSystemObject 
هه آش رايكم في هالمقدمة
انا مش بارع في الشرح عموما ان شاء الله يكون كلامي واضح
و على كل حال اي غموض مستعد اشرحه
من خلال الكائن الذي صرحنا عنه سابقا سيكون بامكاننا انشاء كائنات مشتقة جديدة
هي في الغالب :
الكائن Scripting.Drive
الكائن Scripting.Folder
الكائن Scripting.File
لكل من هذه الكائنات خصائص طرق و احداث كثيرة سناتي عليها او على اكثرها
ان شاء الله
طبعا انا محتاج لمعونة الله ثم الى تشجيعكم لان عزيمتي من النوع Rechargeable
فلا تدعو بطاريتها تنفذ
__________________
An ASM coder has arrived
yanes غير متصل  
الأعضاء التالين شكروا yanes على هذا الموضوع :
Hamza yanes (15-10-08), MrVisualBasic (18-11-08)
قديم 14-10-08   #7
d.ezat
عضو مشارك
 
تاريخ التسجيل: Jul 2008
المشاركات: 204
عدد مرات شكره للأعضاء: 20
تم شكره 11 مره في 9 مشاركه
قوة التقييم: 3
d.ezat is on a distinguished road
الافتراضي

جزاك الله خير .. مع دوام تقديم المزيد
d.ezat غير متصل  
قديم 14-10-08   #8
abed
مشارك متميز
 
تاريخ التسجيل: Oct 2007
المشاركات: 1,412
عدد مرات شكره للأعضاء: 37
تم شكره 123 مره في 91 مشاركه
قوة التقييم: 4
abed is on a distinguished road
الافتراضي

اقتباس:
المشاركة الأصلية بواسطة yanes مشاهدة المشاركة
شكرا لكم جميعا
لكن استغرب من الردود يعني الثلاثة اللي ردوا مش ناقصين وين مشاركات المبتدئين
اللي المفروض بكونوا اكثر اهنماما بهذا الدرس
ما علينا
أعزك الله من قال انى عالِم فهو لا يفقه شئ دعك من الاسماء والالقاب
اما عن الشرح ماشا ءالله جميل جدا أخى مع انها صغيرة غير انها مفيده
__________________
اللهم بلغنا رمضان
OoOoOoOoOoO oOoOoOoOoOo

......

عُدلت بواسطة abed; 14-10-08 الساعة 04:54 AM
abed غير متصل  
العضو التالي يشكر abed على هذه المشاركة :
Hamza yanes (15-10-08)
قديم 14-10-08   #9
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
Lightbulb الجزء الثاني

بسم الله الرحمان الرحيم

هذا هو الجزء الثاني سندرس فيه باذن الله الكائن Drive
يمكننا FSO من الوصول الى الاقراص بمجرد تعريف الكائن Drive و انشاء نسخة منه

الرمز PHP:
Dim ObjFso As Scripting.FileSystemObject
Set ObjFso 
= New Scripting.FileSystemObject

Dim Drv 
As Scripting.Drive 
ناتي الآن الى خصائص هذا الكائن

Driveletter هذه الخاصية تعود بكل بساطة بالحرف الذي يرمز الى القرص
لكنها عود بالحرف فقط و بدون : او \

Path تعود هذه الخاصية بمسار القرص مثلا : "C:"

VolumeName تعود هذه الخاصية باسم القرص مثلا DATAS او SYSTEM او STORAGE

DriveType تعود هذه الخاصية بنوع القرص مثال : "Removable,CDRom,Fixed,Remote,UnknownType, ..."

FileSystem و هو النظام المستخدم لجدولة الملفات ك "NTFS , FAT32 , FAT ,..."

IsReady تشير هذه الخاصية الى جاهزية القرص المعني و عادة تستعمل هذه الخاصية
لمعرفة ما اذا كان هناك قرص داخل سوافة الاقراص هذا مثال على ذلك
الرمز PHP:
Dim ObjFso As Scripting.FileSystemObject
Set ObjFso 
= New Scripting.FileSystemObject

Dim Drv 
As Scripting.Drive
For Each Drv In ObjFso.Drives
    
If Drv.DriveType CDRom Then
        
If Drv.IsReady Then
            MsgBox 
"There is a CDRom disk in " Drv.DriveLetter
        
Else
            
MsgBox "The CDRom Driver " Drv.DriveLetter "  contain no disk " Chr(13) & "Please Insert Disk in this driver and Retry !"
        
End If
    
End If
   
Next Drv 
TotalSize تعود هذه الدالة بالحجم الجملي للقرص

AvailableSpace ترجع هذه الدالة قيمة المساحة المتوفرة اي الفارغة على القرص

FreeSpace هذه الدالة تعمل كسابقتها

SerialNumber تعود هذه الدالة بالرقم التسلسلي للقرص و هذه الدالة قد تفيدنا في
عمل حماية لبرامجنا عن طريق توليد شفرة التسجيل الخاصة بالحاسوب الذي يعمل عليه
برنامجنا و ليس هنا مقام مناسب للتعمق في هذا الامر

RootFolder ينشا عن هذه الخاصية كائن من نوع Folder يحمل المسار الاصلي للقرص


هناك بعض الامثلة في المرفقات حاولت انها تكون بسيطة للغاية
و لاي سؤال انا بالخدمة
اضافات
يمكننا استعمال الدالة DriveExists للتاكد من وجود القرص المطلوب و هكذا نتجنب اخطاء
التنفيذ الناتجة من هذا الباب يمكن عمل ذلك كالآتي
الرمز PHP:
Dim ObjFso As Scripting.FileSystemObject
Set ObjFso 
= New Scripting.FileSystemObject

Dim Drv 
As Scripting.Drive

if ObjFso.DriveExists("C)  then
msgbox "
Drive installed Correctly" else
msgbox "
Drive not found
End if 
و يا ريت من يجدخطا او عنده اضافة يتحفنا بها و ما يحرمنا

الملفات المرفقة : لم يتم فحص هذه الملفات للتأكد من خلوها من فيروسات أو برامج تجسس ، يرجى استخدام برنامج لفحصها كي لا تؤدي للضرر ببياناتك وجهازك

نوع الملف: rar vb6 fso.rar‏ (2.2 كيلوبايت, عدد مرات التحميل: 66)
__________________
An ASM coder has arrived
yanes غير متصل  
الأعضاء التالين شكروا yanes على هذا الموضوع :
Hamza yanes (15-10-08), sultan911 (17-11-08)
قديم 14-10-08   #10
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
Thumbs down

يا شباب اذا ما عجبكم الموضوع قولولي :confuse d:
على الاقل ما اتعب نفسي
اترك الموضوع ??
__________________
An ASM coder has arrived
yanes غير متصل  
قديم 15-10-08   #11
mnimortal
عضو
 
تاريخ التسجيل: Jul 2008
المشاركات: 294
عدد مرات شكره للأعضاء: 49
تم شكره 31 مره في 26 مشاركه
قوة التقييم: 3
mnimortal is on a distinguished road
Talking

اقتباس:
المشاركة الأصلية بواسطة yanes مشاهدة المشاركة
يا شباب اذا ما عجبكم الموضوع قولولي :confuse d:
على الاقل ما اتعب نفسي
اترك الموضوع ??

ولماذا تتركه أكمل جزاك الله خير ممممممممممممممممممممممممممممممممممتاز :d
__________________
كلمتان خفيفتان على اللسان حبيبتان الي الرحمن
(((((((سبحان الله وبحمده سبحان الله العظيم ))))))
mnimortal غير متصل  
قديم 15-10-08   #12
me&vb
عضو جديد
 
تاريخ التسجيل: Feb 2008
المشاركات: 22
عدد مرات شكره للأعضاء: 3
تم شكره 0 مره في 0 مشاركه
قوة التقييم: 0
me&vb is on a distinguished road
الافتراضي

يا أخي الموضوع روعة رغم أن تقنية الدوت نت أتت بأشياء أخرى مدهلة لكن واصل فموضوعك غاية في الأهمية
me&vb غير متصل  
قديم 15-10-08   #13
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
الافتراضي

شكرا على هذه الكلمات اللطيفة لكن الظاهر ان الجماعة انحلت مشاكلهم من هذه الناحية :d
__________________
An ASM coder has arrived
yanes غير متصل  
قديم 15-10-08   #14
Lion_Ksa
مشارك متميز
 
تاريخ التسجيل: Dec 2007
المشاركات: 2,433
عدد مرات شكره للأعضاء: 145
تم شكره 434 مره في 281 مشاركه
قوة التقييم: 5
Lion_Ksa is on a distinguished road

الأوسمة

الافتراضي

Rechargeable

hahahaha
please , when you start be hard to stop
go on
keep explain Man
your's
__________________
أشهد أن لا إلـهَ إلاَّ الله وأشهد أن محمداً رسول الله
اللهم لك الحمد كما ينبغي لجلال وجهك وعظيم سلطانك
اللهم ارزقني حسن الخاتمة يا حي يا قيُّوم
"رمضان"
Lion_Ksa متصل حالياً  
قديم 15-10-08   #15
دمية الثلج
عضو جديد
 
تاريخ التسجيل: Oct 2008
المشاركات: 17
عدد مرات شكره للأعضاء: 0
شكر 3 مره في 1 مشاركة
قوة التقييم: 0
دمية الثلج is on a distinguished road
الافتراضي

شكرا لكم
دمية الثلج غير متصل  
قديم 15-10-08   #16
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
الافتراضي

مشكورين جميعا ان شاء الله نكمل الجزء الخاص باحتراف التصرف في المجلدات قريبا
ثم نكمل مع الملفات
__________________
An ASM coder has arrived
yanes غير متصل  
العضو التالي يشكر yanes على هذه المشاركة :
قديم 29-10-08   #17
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
الافتراضي

بسم الله الرحمان الرحيم
هذا هو الجزء الثالث من الدرس الخاص بمكتبة ال FSO للتعامل مع الاقراص المجلدات و الملفات
اعتذر عن التاخر بمتابعة هذا الدرس لاني كنت مشغولا خلال الايام الماضية

سنتعرض اليوم الى التعامل مع المجلدات لنصل اخيرا الى ادارة الملفات

تتعامل هذه المكتبة مع الكائنات التابعة لها بطريقة هرمية على الشكل التالي
(الصورة في المرفقات)

لذلك يمكن الدخول الى المجلدات مباشرة من خلال تعريفه بالطريقة التالية

الرمز PHP:
Dim FSOobj As Scripting.FileSystemObject
Dim Fldobj 
As Folder

Set FSOobj 
= New Scripting.FileSystemObject

Set Fldobj 
FSOobj.GetFolder("C:\Windows\system32")
With Fldobj
 MsgBox 
"Our path is : " & .Path Chr(13) & "It's size = " & .Size Chr(13) & "Created : " & .DateCreated
End With 
او نستطيع ايضا الوصول الى المجلد باستخدام الترتيب الهرمي سابق الذكر اعلاه

الرمز PHP:
Dim FSOobj As Scripting.FileSystemObject
Dim DrvObj 
As Drive
Dim FldObj 
As Folder

Set FSOobj 
= New Scripting.FileSystemObject

Set DrvObj 
FSOobj.GetDrive("C")

Set FldObj DrvObj.RootFolder.SubFolders("Windows")
Set FldObj FldObj.SubFolders("system32")
MsgBox "Our path is : " FldObj.Path Chr(13) & "It's size = " FldObj.Size Chr(13) & "Created : " FldObj.DateCreated 
اي اننا نمر بالقرص ثم المجلد الام لينتهي المسار بنا الى مجلدنا
و هذه الطريقة اطول و ابطأ في التنفيذ لكن لها استخداماتها التي ستعرفها بنفسك
حين تحتاجها
نقطة ثانية
مشكل المسارات التي هي سبب نسبة كبيره من اخطاء التنفيذ و بالتالي تدني كفاءة البرامج
يمكن تلافيها باستخدام الدالة FolderExists التي يصح استخدامها ايضا مع المجلدات
هذا مثال على ذلك

الرمز PHP:
Dim FSOobj As Scripting.FileSystemObject
Set FSOobj 
= New Scripting.FileSystemObject

If FSOobj.FolderExists("C:\Windows\system32") = False Then
   MsgBox 
"Folder not found"
   
Else
    
Set FldObj FSOobj.GetFolder("C:\Windows\system32")
    
MsgBox FldObj.Path
End 
If
End Sub 
للملفات في هذه المكتبة خصائص كثيرة نستعرض هنا أهمها
Name و هذا هو الأسم المجرد للمجلد
Path وهو المسار الكامل للمجلد
Type تعود بنوع المجلد و تحمل غالبا القيمة FileFolder
Size تعود هذه الخاصية بالحجم الجملي للمجلد بالبايت
SubFolders و هي مجموعة اي Collection نمر من هذه الخاصية ااوصول الى المجلدات الفرعية
Files و هي مجموعة اي Collection نمر من هذه الخاصية ااوصول الى الملفات
سنرى امثلة لاستخدام المجموعات مع هذه الخاصيات
Drive تعود هذه الخاصية بكائن من النوع يعرف القرص الموجود عليه مجلدنا
DateCreated تاريخ انشاء المجلد
DateLastModified تاريخ أخر تديل طال هذه المجلد
DateLastAccessed تاريخ آخر دخول الى المجلد
هذه كنت اهم خصائص المجلدات و معلوم ان هناك خصائص اخرى قد تتعرف عليها بنفسك عزيزي عندما تتعمق في دراسة هذه المكتبة

نأتي الأن الى الطرق التي يمكن استعمالها مع المجلدات
الدالة Copy تنسخ الملف الرسل اليها الى المسار الذي تريد كالآتي
الرمز PHP:
FldObj.Copy "C:\Windows"True 
انتبه الى ان True في أخر التعليمة تعني ان OverWriteFiles ستعوض اي مجلد بنفس الاسم في
المسار الذي سننقل اليه مجلدنا فاذا وجد هذا و كانت قيمة OverWriteFiles هي False فان خطأ
في التنفيذ سيحصل
او ببساطة
الرمز PHP:
FSOobj.MoveFolder "C:\Test ""C:\Test2" 
الدالة Move تنقل المجلد الى المسار المطلوب مثال
FldObj.Move "C:\Windows" 'Syntax
او
الرمز PHP:
FSOobj.MoveFolder "C:\Test ""C:\Test2" 
الدالة Delete تنهي ببساطة حياة مجلدنا المسكين
FSOobj.DeleteFolder "C:\Test ", False
يحدث خطأ عند محاولة مسح مجلدات الAttribute ReadOnly
لذا نحول ال False الى True ليتم القضاء على المجلد حتى وهو ReadOnly
هذه تقريبا اهم الدوال-الطرق للمجلدات
سارفق لكم مثالا لكل هذه الدوال لمزيد التوضيح

لكل استفسار او غموض انا جاهز

ارجو فقط ان تستفيدوا و تستغفروا لي
و الله الموفق
الصور المرفقة
نوع الملف: jpg Fso.JPG‏ (17.3 كيلوبايت, عدد مرات التحميل: 15)
__________________
An ASM coder has arrived
yanes غير متصل  
قديم 18-11-08   #18
ksh_mag
عضو مشارك
 
تاريخ التسجيل: Sep 2008
المشاركات: 253
عدد مرات شكره للأعضاء: 14
تم شكره 33 مره في 16 مشاركه
قوة التقييم: 2
ksh_mag is on a distinguished road
الافتراضي

[جزاكم الله كل خير
ksh_mag غير متصل  
قديم 18-11-08   #19
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
الافتراضي

شكرا جزيلا لك أخي و الله رجعتلي الامل
حتى اني انقطعت عن هذا الدرس دون اكمال الجزء الخاص بالتصرف في الملفات مع انه الاهم

مشكور مرة أخرى
__________________
An ASM coder has arrived
yanes غير متصل  
قديم 19-11-08   #20
الاستاذ سائد
عضو جديد
 
تاريخ التسجيل: Oct 2008
المشاركات: 19
عدد مرات شكره للأعضاء: 4
تم شكره 1 مره في 1 مشاركه
قوة التقييم: 0
الاستاذ سائد is on a distinguished road
الافتراضي

كمل يا كبير نحن في انتظار المزيد
الاستاذ سائد غير متصل  
العضو التالي يشكر الاستاذ سائد على هذه المشاركة :
yanes (20-11-08)
قديم 20-11-08   #21
yanes
عضو مشارك
 
تاريخ التسجيل: Oct 2007
المشاركات: 491
عدد مرات شكره للأعضاء: 22
تم شكره 52 مره في 45 مشاركه
قوة التقييم: 0
yanes is an unknown quantity at this point
الافتراضي

جزاك الله خيرا اخي العزيز الاستاذ سائد
__________________
An ASM coder has arrived
yanes غير متصل  
موضوع مغلق

الوسوم
filesystemobject fso


يتصفح الموضوع حالياً: 1 (0 عضو و 1 ضيف)
 
أدوات الموضوع
طريقة العرض

قوانين المشاركة
لا يمكنك إضافة مواضيع
لا يمكنك إضافة ردود
لا يمكنك إضافة مرفقات
لا يمكنك تعديل مشاركاتك

رمز [IMG] متاح
رموز HTML مغلق
انتقل إلى


الساعة الآن +3: 12:05 AM.



إعلانات نصية: القرآن  الإسلام  السنة   رسول الله    صيد الفوائد طريق الإسلام   إبن باز  إبن عثيمين الإسلام سؤال وجواب  المسلم  الإسلام اليوم  البث الإسلامي    طريق القرآن   المصحف الشريف بالفلاش  رسالة الإسلام كلمات  طريق الإيمان    قناة المجد المجهر   سلطان    الراصد  البينة  البرهان  الفرقان قصة الإسلام أسرة نت دليل المواقع منتدى مكتوب

Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
هذا المنتدى يستخدم منتجات بلص
جميع الحقوق محفوظة لموقع فيجوال بيسك للعرب vb4arab.com