بسم الله الرحمن الرحيم
بينما كنت اتسلى بأحد البرامج صباحاً ... احتجت الى دالة لتحويل حجم الملفات من البايت الى رقم يمكن فهمه فمثلا اذا قلت لك ان برنامج الـ Word 2003 هو 347432 بايت او قلت لك ان الـ Outlook 2003 بحجم 12813096 بايت ...... فلا اظنك ستكون سعيدا بهذه الارقام كما هو حالي فالأجمل و الأكثر اعتيادية هو ان اقول لك ان برنامج الورد بحجم 339 كيلوبايت و أن برنامج الاوتلووك هو بحجم 12.2 ميجابايت .
هذا ما كنت ابحث عنه و بالفعل كنت قد صممت قديما دالة بسيطة للقيام بهذه المهمة البسيطة كالتالي :
Function SizeString(ByVal Bytes As Long, Optional ByVal DigitsAfterPoint As Integer = 2) As String Const KB = 1024 Const MB = KB ^ 2 Const GB = KB ^ 3 Select Case Bytes Case Is < KB : SizeString = Math.Round(Bytes, DigitsAfterPoint) & " Bytes" Case Is < MB : SizeString = Math.Round(Bytes / KB, DigitsAfterPoint) & " KB" Case Is < GB : SizeString = Math.Round(Bytes / MB, DigitsAfterPoint) & " MB" Case Else : SizeString = Math.Round(Bytes / GB, DigitsAfterPoint) & " GB" End Select End Function
فمثلا اذا استخدمت سطرا كالتالي :
MsgBox( SizeString(12813096, 2) )
فسوف تحصل على حجم الملف مع رقمين بعد الفاصلة العشرية هكذا 12.2 ميجا بايت وهو ما اريده بالضبط
على العموم كنت اعلم انني استخدمت هذه الدالة مرارا و تكرارا في برامج فرحت ابحث ان احد البرامج الذي استخدمتها فيه نظرا لكسلي الكبير و عدم رغبتي في كتابتها مجددا !!! ... فتحت برنامج البحث الخاص بالوينذوز و قمت بالبحث داخل ملفات الكود الذي تحمل اللاحقة vb عن النص SizeString ( اسم الدالة المذكورة ) . كانت النتائج مربكة لي و مفاجئة حيث انه لم يتم العثور على اي ملف يتحوي على هذه الدالة !؟ .... ارابتني هذه النتائج حقا فأعدت البحث داخل كل الكمبيوتر هذه المرة وليس داخل الفولدر الذي يحتوي على برامجي و هالني ان النتائج نفسها تكررت !!
اصابني خوف اذ لعلني فقدت برامجي ؟ كوني متأكدا من ان الكثير من البرامج تحتوي على هذه الدالة فبدأت ابحث عنها يدويا و وجدت كل شيء في مكانه السليم ووجدت الدالة فعلا في اكثر من برنامج من برامجي؟!
استنتجت كون محرك البحث في الوينذوز لا يبحث في محتويات (كل) الملفات .. فقمت بتجربة للتأكد فقد حولت لاحقة احد الملفات التي تحتوي على الدالة SizeString من الامتداد vb الى الامتداد txt و بالفعل فقد وجدها مباشرة!!
ازعجني كثيرا كوني لا استطيع البحث في محتويات ملفاتي إذ انني امتلك مجلد كبير يحتوي على اشباه برامج و هي عبارة عن البرامج التي اقوم فيها بالتجارب على اي شيء او احاول فيها الاجابة على استفسارات من المنتديات البرمجية فكل ما اقوم به هو إنشاء مشروع سريع يخدم فكرة معينة وهكذا فاصبح المجلد كبيرا و يحتوي على الكثير و لكن المتعب فيه هو عملية البحث عن دالة او موضوع داخلة فهو مبعثر مترامي الاطراف (الملفات) ... المهم من هنا نشئت فكرة تصميم برنامج بحث بسيط للقيام بالعملية
يعتمد البرنامج على تقينة ( الإستدعاء الذاتي ) و التي سبق ان كان لنا معها مقال آخر تجده هنا إن احببت
اتمنى ان يخدم البرنامج لتلبية الاحتياجات المشابهه لحالتي - على الرغم من البرنامج لم يراعي فيه اي اهتمام بالاداء و تعدد الاحتمالات حيث صمم فقط لخدمة البحث في الملفات الصغيرة عن اي كلمة او جملة معينة و يمكن ان يتم تطويرة إن اقتضت الحاجة لذلك لاحقا بإذن الله تعالى
السلام عليكم و حمة الله و بركاته

