16-06-17, 01:01 PM
(آخر تعديل لهذه المشاركة : 16-06-17, 01:23 PM {2} بواسطة عبدالله خضر.)
6 - دالة تحديد عدد عناصر الليست بوكس ListBox
إسميتها : ListBoxCount
كود ونص الدالة :
كود :
Function ListBoxCount(ByVal ListBoxName As ListBox) As Integer
ListBoxName.Refresh()
Return ListBoxName.Items.Count
End Functionسبب إنشاء الدالة :
غالبا ماتحتاج إنعاش صندوق الليست بالأمر Refresh ، وبعدها تحصيل عدد عناصر الليست ..
يعني خطوتين تتكرر كل مرة إذا أردت معرفة عدد العناصر الموجودة في الليست - ياللملل -
فللإختصار نجعلها دالة ونستدعيها بإسم الدالة ونكتب إسم الليست فقط ...
===============================
7 - دالة إقتطاع إسم الملف فقط من نص مساره الكامل
إسميتها : FileNameOfPathFile
كود ونص الدالة :
كود :
Function FileNameOfPathFile(ByVal FilePath As String, Optional ByVal WithExtension As Boolean = True) As String
Dim C As Integer, K, K2 As String
Dim Cm As String = "\", P As String = FilePath.Trim
C = ItemsCount(P, Cm)
K = ItemSN(C, P, Cm) : K2 = K
If WithExtension = False Then
If InStr(1, K, ".") <> 0 Then
K2 = ItemSN(1, K, ".")
End If
End If
Return K2
End Functionشرح عمل الإجراء :
في حال أردت إظهار إسم الملف فقط بدون نص مساره كله . كمثال إسم المسار الكامل للملف يكون :
C:\Test Folder\test.txt
أما إسم الملف فقط ، فسيظهر : test.txt
مع إمتداده txt
أما في حال غيرت الإختيار الإفتراضي WithExtension ليصبح False ، فسيظهر إسم الملف فقط بدون إمتداده ..
ستلاحظ أن عمليات هذه الدالة تعتمد كليا على دوال المجموعة ( Item ) التي ذكرتها سابقا ، وهذا هو مفهوم ( التكامل الوظيفي ) بين الدوال.
===============================
8 - إجراء نسخ أسماء جميع الملفات الموجود في مجلد محدد إلى صندوق اللائحة ( الليست بوكس ) ListBox
إسميتها : CopyFilesNameInDirToListBox
كود ونص الإجراء :
كود :
Sub CopyFilesNameInDirToListBox(ByVal DirName As String, ByVal ListBoxName As ListBox, _
Optional ByVal WithExtension As Boolean = False, _
Optional ByVal LabelNameForViewCountOfItems As Label = Nothing)
Dim Nm, FN As String, Lbl As Label = LabelNameForViewCountOfItems
Dim FLs As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = _
My.Computer.FileSystem.GetFiles(DirName.Trim)
ListBoxName.Items.Clear()
For Each Nm In FLs
FN = FileNameOfPathFile(Nm, WithExtension)
ListBoxName.Items.Add(FN)
Next
If Lbl IsNot Nothing Then
Lbl.Text = ListBoxCount(ListBoxName)
End If
End Subشرح عمل الإجراء :
في أحد برامجك الجدية أردت قائمة أسماء الملفات الموجودة في مجلد ما ، قد يكون ذلك للإستطلاع أو تعديل أسماء منها أو حذف أو نقل أو فتح المحتوى أو أو ...
طبعا الليست بوكس ListBox أداة لاغنى لكل مبرمج عنها بخصوص عرض محتوى القوائم ، إذن نريد رؤية قائمة أسماء الملفات هذه في ليست معين .. هذا هو بالضبط عمل هذا الإجراء ..
وذلك يكون عبر المدخلات المطلوبة ( الباراميترات ) الآتية مع وجود إختيارات مهمة مرنة :
DirName As String
متغير نصي : يطلب منك مسار المجلد المطلوب ، إلزامي .
ListBoxName As ListBox
إسم الليست المطلوب نسخ أسماء الملفات إليه ، إلزامي .
Optional WithExtension As Boolean = False
متغير منطقي إختياري ( ليس إلزاميا ) ، محدد إفتراضيا بالقيمة المنطقية False أي لا .
وهو بمعنى : هل تريد عرض أسماء الملفات مع إسم إمتدادها ؟
Optional LabelNameForViewCountOfItems As Label = Nothing
متغير إختياري ( ليس إلزاميا ) لتحديد إسم الليبل Label الذي سيطبع عليه عدد عناصر الليست ( عدد أسماء الملفات في المجلد المحدد ) ، محدد إفتراضيا بالقيمة Nothing أي أنه غير موجود في حال لم تكتب إسم الليبل ، أما إذا كتبت إسم ليبيل موجود في البرنامج لهذا الغرض
ستصبح قيمة الباراميتر تلقائيا = IsNot Nothing ، أي عكس ( غير موجود ) ، يعني ( موجود )
ملاحظة :
ستلاحظ وجود دالة سابقة وهي ListBoxCount في هذا الإجراء ..
هذا معناه وجود ( تكامل وظيفي تلقائي ) بين الدوال والإجراءات المختلفة يهدف للفاعلية الإنتاجية في إختصار الوقت والجهد ، ولكن بشرط وجودها في ملف أو ملفات ميديول Module في برنامج واحد ..
لهذا السبب أوصي بتجميع دوال هذا الموضوع في ملف ميديول واحد ..

