الشرح منقول
الدوال الرياضية
Abs
ترجع القيمة المطلقة لآي عدد وترجعه من نفس نوع البيانات المعطى للدالة والمقصود بالقيمة المطلقة هي قيمة العدد بدون إشارة فالقيمة المطلقة ل (-13) مثلا هي (13) وهكذا.
ولاحظ أن القيمة المدخلة للدالة لابد أن تكون عدد أو تعبير عددي فإذا كانت القيمة المدخلة للدالة Null ستكون النتيجة Null وإذا كانت القيمة المدخلة للدالة متغير فارغ أو لم يتم تعيين قيمة له ستكون النتيجة (0).
راجع الدالة ايضا sgn فهاتين الدالتين تسمى دوال الاشارة
:
MyNumber=Abs(-45.6)
msgbox MyNumber
فإن نتيجة تنفيذ الدالة هي
MyNumber=45.6
Sqr
تستخدم هذه الدالة في تحديد الجذر التربيعي لرقم معين وتأخذ الصورة العامة التالية .
:
MyNumber=Sqr(10)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي
MyNumber=3.1622776
Log
تستخدم هذه الدالة في تحديد قيمة اللوغاريتم العشري لرقم وتأخذ الصورة العامة التالية :
MyNumber=Log (20)
Text1.Text=MyNumber
فإن نتيجة تنفيذ الدالة هي
MyNumber=2.9957327
Exp
تستخدم هذه الدالة في تحديد القيمة (e) وهي قاعدة اللوغاريتم الطبيعي مرفوعة بقوة الرقم الذي تتضمنه حيث (e) تساوي تقريبا 2.7182818 وتأخذ الصورة العامة التالية :
MyNumber=Exp (رقم)
Rnd
وتستخدم هذا الدالة في توليد أرقام عشوائية تقع ما بين الصفر و واحد بحد أقصي 15 رقما عشريا انظر المثال 1
التصريح Randomize : يعمل هذا التصريح مع الدالة Rnd ونستفيد منه عدم التكرارية و الحصول علي عشوائية افضل وذلك لأنه يعتمد علي ساعة النظام لديك .انظر المثال 2
في المثال 2 نعمل علي توليد أرقام عشوائية من واحد إلى عشرة .
أما إذا أردت أن تجعل هذه العشوائية نصوص وليس أرقاما فلك طريقتين لتحايل علي هذا أما أن تضع النصوص في قاعدة بيانات وفي شكل سجلات وتعضي لكل سجل رقم أو تضعه في مصفوفة وتعضي لكل نص رقم أيضا وأنا افضل الطريقة الأولى لسرعتها
المثال 1
MyNumber=Rnd (عدد)
فمثلا الدالة Rnd(10) قد تعطي رقما مثل 0.7055475 وعند تشغيل الدالة مرة أخري ينتج رقما آخر مثل 0.533424 وهكذا .
المثال 2
Randomize
MsgBox Int((10 * Rnd) + 1)
المثال 3
مثال لتوليد الالون بطريقة عشوائية
Randomize
Label1.BackColor = QBColor(Int((16 * Rnd) + 0))
المثال 4
For i = 1 To 4
Print Rnd()
Next i
Int
وتستخدم هذه الدالة لحساب الجزء الصحيح فقط من رقم يشتمل علي أرقام صحيحة وعشرية أو بعبارة أخر لحذف الأرقام العشرية الموجودة بعد العلامة العشرية بدون تقريب وتأخذ الصورة التالية :
MyNumber=Int (332.54)
فإن نتيجة تنفيذ الدالة هي
MyNumber=332
Atn
تستخدم هذه الدالة في حساب مقلوب ظل الزاوية "ظتا" للرقم الذي تشتمل علية مقدار بالتقدير الدائري وتأخذ الصورة العامة التالية :
MyNumber=Atn (رقم)
Tan
تستخدم هذه الدالة في تحديد قيمة ظل زاوية معينة وتأخذ الصورة العامة التالية :
MyNumber=Tan (رقم)
Cos
وتستخدم هذه الدالة في تحديد قيمة جيب تمام الزاوية معينة وتأخذ الصورة العامة التالية :
MyNumber=Cos (رقم)
Sin
تستخدم هذه الدالة في تحديد قيمة جيب زاوية معينة وتأخذ الصورة العامة التالية :
MyNumber=Sin (رقم)
دوال سلاسل البيانات
Array
تحول عدة بيانات مدخلة كنصوص تفصلها فاصلة إلى مصفوفة يكون رقم أول عنصر فيها (Lower Bound) هو (0) انظر المثال.
أي أن المتغير MyNumber يحمل مصفوفة ممتلئة بالنصوص المدخلة بعد أن تحولت إلى عناصر للمصفوفة
لاحظ أن المتغير MyNumber كان من نوع Variant لأننا لم نعلن عنه ويمكن للمتغير من هذا النوع أن يحمل مصفوفة وكذلك يمكن أن تكون المصفوفة من أي نوع آخر فالمصفوفة المستعملة في المثال هي مصفوفة نصية بينما لو كانت العناصر المدخلة أرقما (لاستعملنا علامات التنصيص مع الأرقام حتى لا تعتبر نصوصا) لكانت مصفوفة من نوع Integer مثلا .
"Frist","Second","Third","Forth"
MyNumber= Array("First" , "Second" , "Third" , "Forth" )
Print MyNumber(0)
Print MyNumber(1)
Print MyNumber(2)
Print MyNumber(3)
نرى أن النتيجة هي
كود:
First
Second
Third
Forth
Asc
ترجع كود الرمز المدخل (ASCII Code) فمثلا الحرف A له الكود 65 فعند إدخال حرف A مثلا ستكون النتيجة 65 وهكذا ( لاحظ أن حرف A يختلف عن حرف a في الكود)
تجد أن المتغير MyNumber أصبح يحمل القيمة 97 . وهكذا .. انتبه فيما لو غيرت الحرف من صغير إلى كبير ستتغير القيمة إلى 65
MyNumber=asc("a")
Ucase
تحول الجمله المدخلة من الاحرف الصغيره الى الاحرف الكبيره
انظر الى نتيجة هذا المثال
msg = UCase("sami")
MsgBox msg"
Lcase
تحول الجملة الى حروف صغيرة
msg = LCase("SAMI")
MsgBox msg
Chr
تقوم الدالة chr بأخذ قيمة بين 0 و 255 وتعيد الحرف الممثل لهذه القيمة في جدول رموز ASCII، على سبيل المثال العبارة التالية :
كود:
Hi,
I'm "TafTaf"
ستجد أنك لا تستطيع كتابتها بهذا الشكل :
:
myText = "Hi," & vbCrLf & "I'm "TafTaf""
لأن البرنامج سيعتقد بأن نهاية السلسة النصية السابقة هي عند علامات الاقتباس التي تقع مباشرة قبل كلمة TafTaf وستظهر لك رسالة خطأ، لذلك فإننا نلجأ لاستخدام الدالة chr حيث أن رمز علامة الاقتباس المزدوجة في جدول ASCII هو 34، فتكون الصياغة الصحيحة للعبارة البرمجية السابقة كالتالي :
myText = "Hi," & vbCrLf & "I'm " & chr(34) & "TafTaf" & chr(34)"
Len
تستخدم لمعرفة طول السلسلة النصية ( عدد الأحرف ) عدد البايتات، ولعمل ذلك استخدم الدالة Len، مرر إليها النص وستعيد لك عدد الحروف.
myletter=len("form")
msgbox myletter
ستكون النتيجة 4
InStr
يمكنك بواسطة هذه الدالة معرفة أول مكان يظهر فيه نص ما ضمن نص آخر أكبر منه. الوسيطة الأولى هي وسيطة اختيارية تحدد مكان بدء البحث، أما الوسيطة الثانية string1 فتحدد السلسلة النصية التي سيتم البحث فيها، والوسيطة الثالثة string2 تحدد السلسلة النصية التي سيتم البحث عنها في السلسلة الأولى، أما الوسيطة الأخيرة فهي اختيارية أيضا وتحدد نوع المقارنة التي يجب إجرائها وهي تأخذ أحد الثوابت التالية : انظر المثال
والفرق بينهما هو أن الأولى تراعي حالة الأحرف والثاني لا تراعي حالة الأحرف.
في المثال التالي الدالة i ستحتوي على القيمة 1 :
كود:
i = InStr("TafTaf","T")
وأما المثال التالي فستحتوي i فيه على القيمة 3 :
i = InStr("aafTaf","T")
حيث أن الدالة في المثال السابق ستبحث عن الحرف T بادئه من الحرف الثاني ولذلك فهي لن تجد الحرف الأول.
تذكر دائما ان هذه الداله تعيد عددا صحيحا وليس سلسله
كود:
0 - vbBinaryCompare
1 - vbTextCompare "
Str
قد تبدو الدالة Str متشابهة مع الدالة chr، إلا أنها تؤدي وظيفة مختلف تماما، فهي تحول الأرقام إلى سلاسل نصية، وهي تفيد مثلا في حال أردت أن تقوم بالتحام بين رقمين فتقوم بتحويل كل منهما إلى سلسلة نصية وتطبق بينهما جمع السلاسل ( & ) الذي يختلف عن جمع الأرقام وبالتالي تحصل على سلسلة جديدة يمكنك أن تحولها إلى رقم من جديد، على سبيل المثال الدالة myNumber تحتوي على القيمة 123456.
myNumber = Str(123) & Str(456)
ستواجهك مشكلة في الشفرة السابقة حيث يقوم فيجوال بيسيك بإضافة مسافة قبل كل سلسلة نصية تنتج من الدالة السابقة.
Left
تستخدم لاستخراج الجزء الايسر من الجمله
انظر المثال حيث تجد ان النتيجة ="en"
والسبب لاننا استخرجنا الحرفين من الجزء الايسر للكلمة
"myword = "english"
Lword = Left(myword, 2)
MsgBox Lword
Right
تستخدم لاستخراج الجزء الايمن من الجملة.انظر المثال
حيث تكون النتيجة هي ""sh""
والسبب اننا استخرجنا حرفين من الجزء الايمن من المتغير myword
"myword = "english"
Rword = Right(myword, 2)
MsgBox Rword
MID
تعيد الدالة Mid عددا من الأحرف قدره length بدءا من حرف معين هو start، في سلسلة نصية string لاحظ أيضا أن الوسيطة length اختيارية وإذا لم تمرر بها أي قيمة فإن الدالة ستعيد الأحرف إلى نهاية السلسلة .
في المثال التالي ستحتوي المتغيرة myText على العبارة I'm Taf :
myText = Mid("I'm TafTaf", 1, 7)
تعيد الدالة Mid عددا من الأحرف قدره length بدءا من حرف معين هو start، في سلسلة نصية string لاحظ أيضا أن الوسيطة length اختيارية وإذا لم تمرر بها أي قيمة فإن الدالة ستعيد الأحرف إلى نهاية السلسلة .
في المثال الاول ستحتوي المتغيرة myText على العبارة I'm Taf :
أما في المثال الثاني فستحتوي على الكلمة TafTaf :
التصريح Mid : يقوم التصريح Mid باستبدال مقطع محدد من النص بنص آخر، وهو يكتب في صورة مشابهة جدا لطريقة كتابة دالة Mid ولكن توضع بعده علامة مساواة وبعدها العبارة الجديدة، في المثال الثالث ستحتوي المتغيرة myText على القيمة I'm TafTaf :
المثال 1
myText = Mid("I'm TafTaf", 1, 7)
المثال 2
myText = Mid("I'm TafTaf", 5)
المثال 3
name = "TafTaf"
myText = "I'm name"
Mid(myText, 5) = name
حيث سيتم حذف الجزء المحدد بالخاصية Mid ويوضع الجزء الذي بعد علامة المساواة في مكان الجزء المحذوف .
strReverse
تعيد السلسلة string معكوسة، أي تبدأ من البداية وتنتهي من النهاية
وهي تقوم بعملية عكس النص وقلبه من اليسار لليمن او العكس وقد كان كتابة كود يقوم بهذا العملية ياخذ اكثر من 5 الى 10 اسطر لكن مع هذه الدالة فلن يتطلب منك سوى سطر واحد.
والدالة تتخذ هذا الشكل...
msgbox = strReverse("welcome")"
Replace
وتقوم باستبدال النص string2 بالنص string3 ضمن السلسلة string1، أي أنها تبحث فبالنص string1 عن النص string2 وعندما تجده فإنها تحذفه منه وتضع مكانه string3، ويمكن تحديد نقطة بداية البحث بالوسيطة start، وعدد مرات الاستبدال القصوى بالوسيطة count، ضع القيمة -1 لاستبدال الكل، وطريقة المقارنة بالوسيطة compare كما ذكر سابقا.
المتغيرة myText في المثال التالي ستحتوي على القيمة Hi Everyone :
myText = Replace("Welcome Everyone,", "Welcome", "Hi", 1, -1)"
Format
احدى اكثر الدوال تعقيدا وقوة.فهي ترجع متغيرها باشكال مختلفة تبعا للطريقة التي تم تمرير متغيرها. انظر الصيغه العامة للدالة
ملاحظة:
اذا لم تعين علامه $ فان نوع البيانات هي ستكون متنوعاVARIANT وخلافا لذلك فان نوع البيانات سيكون سلسلة
==========جدول يبين رموز تنسيق عرض التاريخ:================
d تعرض تاريخ اليوم من 1-30
dd تعرض تاريخ اليوم من 01-30 مع صفر في مقدمه العدد الفردي
ddd تعرض الحروف الثلاثة الاولى من اسم اليوم بالنسبه للايام الااجنبيه
dddd تعرض اسم اليوم الكامل من السبت الى الجمعة
ddddd تعرض التاريخ بالكامل
dddddd تعرض التاريخ الكامل بالتنسيق الطويل
w تعرض رقم اليوم في الاسبوع
ww تعرض رقم الاسبوع من السنه من 1-54
m تعرض رقم الشهر من 1-12 كذلك فانها تعني دقيقة اذا كان يعقبها h او hh
mm تعرض رقم الشهر 01-12كذلك فانها تعني دقيقة اذا كان يعقبها h او hh
mmm تعرض مختصرا لاسم الشهر من Jan -Dec
mmmm تعرض اسم الشهر كاملا
q تعرض ربع السنه
y تعرض رقم اليوم من السنة من 1-366
yy تعرض حقلين للسنه 00-99
yyyy تعرض النة بالكامل 1000-9999
h تعرض رقم الساعة من 0-23
hh تعرض رقم الساعة00-23
n رقم الدقيقة
nn رقم الدقيقة 01-59
s تعرض الثواني
ss عرض الثواني 01-59
tttt تعرض الوقت وفقا لاعدادات الجهاز
AM/PM تستخدم توقيت الساعة مكونا من 12 ساعة وتعرض اما PM اوAM
am/pm نفس السابقة
A/P نفس السابقة
a/p نفس السابقة
AM/PM تستخدمتوقيت الساعة مكون من 12 ساعة.لكي تعرض سلسلة للمتغيرين S1159 و S23.59 (في العادة السلسلتان عينت بملف النظام WIN.IN الخاص بوندوز.
===========جدول تنسيق عرض السلسلة=================
@ يظهر الحرف المخرج في موقع الرمز@.اما اذا لم يوجد حرف فسيظهر فراغ مكانه.
& يشبه @ ماعدا انه لايظهر الفراغ
! تجبر كا الحروف @-& ان تشغل الموقع من اليسارالى اليمين
> تجبر الحروف ان تظر بالاحرف الصغيرة
< عكس السابقة
========حروف تنسيق الاعداد=================
0 رقم يظهر في موقع الصفر. اذا لم يكن هناك رقم في موقع الصفر في العدد المنسق فان الصفر سيظهر في هذه الحالة.واما اذا لم يكن هناك اعداد توازي الاصفار ففي هذه الحاله سيتم طبع اصفار امام العدداو في آخره....يستخدم في الغالب لطباعة اصفار على اليمين او اليسار عندما تحتاج اليها.
# تعمل نفس رمز الصفر ماعدا انه لايظهر اي شي اذا كانت الاعداد المراد تنسيقها لاتتكون من خانات توازي عدد هذا الرمز الموجود في حقل التنسيق
. رمز النقطة فهو يحدد كم عدد الاعداد التي ستظهر على يسار او يمين الفاصله العشريه وتستخدم عاده مع 0 او #
% ان العدد المنسق مضروب بالعدد 100 والعلامه المئويه مطبوعة في موقعها داخل السلسلة المنسقة.
, اذا ظهرت الفاصلة في منتصف الاصفار او علامه # فانها تسهل قراءه الالوف
E-,E+,e-,e+ يعني ان العدد منسق بطريقه التدوين العلمي
: ان هذه النقطتين تسببان في ظهور النقطتين بين قيم الساعة والدقيه والثواني
\ يتم طباعه عمود مائل بين قيم ايام التقويم
/ يظهر في موقع السلسله النسقة
- + $ مسافه تظهر هذه الرموز في مواقعها داخل السلسله المنسقه
" "'الصيغه العامة للداله
FORMAT(تنسيق,تعبير)
امثلة لاستخدام الداله
MyDate = Format(Date, "dd-mmm-yyyy")
Text1.Text = MyDate
انظر الامثلة التالية مع النتيجة
===================
النتيجة المثال
format$("Absdef",">") ' ABSDEF
format$("Abs",<") 'abs
format$("A","@@@") ' يظهر الحرف مسبوقا بمسافتين فارغة
format$("A","!!!") 'A
Format$("014021219", "(@@) @@@-@@@@") '(01) 4021219
format$(9146,"|######|") |9146
format$(9146,"|000000|") 009146
format$(2652.2,"00000.00") 02652.20
format$(2652.21,"#####.##") 2652.2
format$(2652.212,"#####.##") 2652.21
format$(2652.216,"#####.##") 2652.22
format$(45,"+###") +45
format$(45,"###-") 45-
format$(45,"$####.##") $45.
format$(45,"$####.00") $45.00
format$(2445,"_#_###.##_#_#") _2_445._ _
format$(2445,"00hi00") 24hi45
=====امثله تنسيق التاريخ و الوقت======
format$(d,"c")
format$(d,"ww")
format$(d,"h م/ص)
format$(d,"d-mmmm h:nn:ss")"
Trim
تقوم هذه الدالة بحذف الفراغات الموجودة في الجهة اليسري و اليمني من سلسلة وتأخذ الصورة التالية :
MyText = Trim(" TafTaf ")
Text1.Text = MyText"
Rtrim
تقوم هذه الدالة بحذف الفراغات الموجودة في الجهة اليمني من سلسلة وتأخذ الصورة التالية :
MyText = Rtrim("TafTaf ")"
Ltrim
وتقوم هذه الدالة بحذف الفراغات الموجودة في الجهة اليسري و اليمني من سلسلة . وتأخذ الصورة التالية :
MyText = Ltrim(" TafTaf ")"
Space
وتقوم هذه الدالة بوضع سلسلة فراغات محدده بالعدد الموجود بين الأقواس
MyText ="I'm"+Space (2)+"TafTaf"
String
تقوم هذه الدالة بتكرار سلسلة بالعدد المحدد
MyText =String (3,"T")"
StrComp
تقارن سلسلتين لتحدد هل هما متساويتين ثم تعيد رقما بنتيجة المقارنة وتأخذ الصورة العامة التالية :
MyText =StrComp("TafTaf","TafTaf")"
#
دوال الوقت و التاريخ
Now
تعيد هذه الدالة تاريخ اليوم و الوقت الحالي باستخدام ساعة الحاسب الذي تعمل علية وتكون بالصورة التالية :
Label1.Caption = Now()
d=day(now())
m=month(now())
y=year())"
Time
تعيد هذه الدالة الوقت الحالي حسب ما هو مدون بساعة الحاسب الذي تعمل علية وتكون بالصورة التالية
Label1.Caption = Time()
Label1.Caption = Time$()"
Date
تعيد التاريخ الحالي حسب ما هو مسجل بالحاسب انظر المثال1
وتستطيع كتابه التاريخ بعده اشكال انظر المثال 2
Label1.Caption = Date()
Label1.Caption = Date$()
2
date$=mm-dd-yy
date$=mm-dd-yyyy
date$=mm/dd/yy
date$=mm/dd/yyyy
Day
تعيد الدالة Day() رقما يقع بين 1 ، 31 يمثل ترتيب اليوم المقابل لقيمة تاريخية بينما تعيد الدالة Month() رقما يقع بين 1 ، 12 يمثل ترتيب الشهر المقابل لقيمة تاريخية
Label1.Caption =Day(Date())
Label1.Caption =Month(Date())"
Month
تعيد الدالة Day() رقما يقع بين 1 ، 31 يمثل ترتيب اليوم المقابل لقيمة تاريخية بينما تعيد الدالة Month() رقما يقع بين 1 ، 12 يمثل ترتيب الشهر المقابل لقيمة تاريخية
Label1.Caption =Day(Date())
Label1.Caption =Month(Date())"
DateSerial
تستخدم دالة DateSerial لإرجاع متغير من نوع تاريخ من ثلاث متغيرات رقمية تمثل السنة والشهر واليوم وتسخدم بالصيغة التالية
DateSerial(year, month, day)
MsgBox DateSerial(1990 , 8, 1)
TimeSerial
تعيد هذه الدالة الوقت المسلسل المقابل للساعة و الدقيقة و الثانية المدونة بين الأقواس وتأخذ الصورة التالية :
timeserial(ثانية,دقيقة,ساعة)
مثال
Get_Time=TimeSerial(12,59,20)
MsgBox Get_Time
DateValue
تعيد هذه الدالة التاريخ المقابل لتعبير معين وتأخذ الصورة التالية :
يبن هذا المثال تحديد يوم من أيام الأسبوع (أمس) بعد تحديد قيمة تاريخ اليوم (بفرض : الاثنين الموافق 2سنة 1997) ثم طرح (1) منة يظهر الناتج في صورة رسالة بان أمس "كان الأحد"
RelVal = DateValue(Now - 1
MsgBox RelVal
Select Case RelVal
Case Is < Int(Now): Verb = "كان "
Case Is > Int(Now): Verb = "سيكون"
Case Else: Verb = "اليوم هو"
End Select
WhatDay = Format(RelVal, "dddd")
MsgBox UserDate & Verb & WhatDay
TimeValue
دوال Hour,Minute,Second,TimeValue:
Hour(رقم)
Minute(رقم)
Second(رقم)
TimeValue(تعبير)
تعيد هذه الدوال قيم الساعة ، الدقيقة ، الثانية أو الوقت .
Midnight=TimeValue(“23:59:59”)
HourDiff=Hour(Midnight)-Hour(Now)
MinuteDiff=Minute(Midnight)-Minute(Now)
SecondDiff=Scond(Midnight)-Second(Now)+1
If Second Diff=60 Then
MinuteDiff=MinuteDiff+1
SecondDiff=0
End If
If MinuteDiff=60 Then
HourDiff=HourDiff+1
MinuteDiff=0
End If
TotalMinDiff=(HourDiff*60)+MinuteDiff
Total SecDiff=(Total MinDiff*60)+SeconDiff
Msg=”إجمالي الوقت المتبقي علي منتصف الليل هو”& Format(Total SecDiff,”#,##0”)
Msg=Msg&”ثانية ، يمكن ترجمتها إلي”
Msg=Msg & HourDiff & “ساعة، ” & MinuteDiff
Msg=Msg & “دقيقة، و ” & SecondDiff & “ثانية”
Msg BoxMsg
يستخدم هذا المثال الدوال السابقة لتحويل الوقت المتبقي علي منتصف الليل إلى ثواني ثم ترجمة هذا الوقت إلى ساعات ودقائق وثواني في رسالة كهذه ""إجمالي الوقت المتبقي علي منتصف الليل هو 79972 ثانية يمكن ترجمتها إلى 22 ساعة 12 دقيقة 25 ثانية "
Weekday
تعيد هذه الدالة ترتيب اليوم بين أيام الأسبوع من التاريخ المدون بحقل التاريخ أو القيمة التاريخية باعتبار أن يوم الأحد رقم 1 والاثنين 2 ... وهكذا
" Label1.Caption = Weekday(#1/4/97#)
Year
تعيد هذه الدالة رقما يعبر عن السنة لتاريخ معين .
Label1.Caption = Year(#1/4/97#)
DateAdd
: تعيد هذه الدالة تاريخ جديد بعد أن تضيف له قيمة جديدة وبصرف النظر عن اسم هذه الدالة فهي تعمل مع كل من التاريخ و الوقت . ويوضح الجدول التالي المقصود بالمعامل ""الفاصل الزمني "" و القيم التي يمكن تخصيصها له :
التوضيــــــــــــــــــــح?الفاصل الزمني
سنة? yyyy
ربع سنة q
شهر m
يوم في سنة y
يوم d
يوم من الأسبوع ( الأحد 1 ، والاثنين 2 ... وهكذا w
أسبوع ww
ساعة h
دقيقة n
ثانية s
لنفترض انك ابتعت شيئا ما اليوم بواسطه البطاقة الائتمانيه والتي تبقي فيها مهله 25 يوما فان المثال الثالث يضيف 25 يوم لتاريخ اليوم... انظر المثال
(Label1.Caption = DateAdd("yyyy", -10, Date
وفي هذا المثال تعيد هذه الدالة السنة الحالية 2003 إلى 10 سنوات مضت 1993
مثال 2
فإذا أردنا مثلاً إضافة (10) أيام إلى تاريخ ""1/1/1423"" فتكون الدالة بالصيغة التالية :
DateAdd("d", 10, "1/1/1423")
مثال 3
ves=dateadd("y",25,now())"
DateDiff
تقوم هذه الدالة بإعادة الفرق بين تاريخين .انظر المثال 1
بينما المثال الثاني يحدد عدد الأسابيع وعدد الأيام ما بين أول أيام سنة 2003 وتاريخ اليوم
====================شرح متقدم للداله========================
وتستخدم هذه الدالة بالصيغة التالية :
:
DateDiff(الفترة, تاريخ1, تاريخ2[, أول يوم في الأسبوع], أول أسبوع في السنة]])
ومتغيرات الدالة كالتالي :
الفترة : وهو أحد المتغيرات المذكورة سابقاً مثل m , d , w وغيرها
تاريخ1 : التاريخ الأول وهو التاريخ الأصغر
تاريخ 2 : التاريخ الثاني وهو التاريخ الأكبر ولو عكست لكانت قيمة الدالة بالسالب
أول يوم في الأسبوع : متغير اختياري أي يمكن عدم استخدامه وهو مفيد في حالة حساب عدد الأسابيع بين تاريخين إذ يتم الاعتماد عليه في تحديد أول يوم في الأسبوع وبالتالي قد يتغير عدد الأسابيع بحسب هذا المتغير ، فلو افترضنا مثلاً أننا نريد حساب المدة مثلاً من يوم السبت هذا الأسبوع حتى يوم الاثنين الأسبوع القادم فلو جعلنا أول يوم في الأسبوع هو الأحد فستكون النتيجة هي ( 2 ) أسبوعان لكن لو جعلنا أول يوم في الأسبوع هو يوم الأربعاء مثلاً فالنتيجة ستكون ( 1 ) أسبوع واحد لأنه لا يوجد خلال هذه الفترة سوى يوم أربعاء واحد وهكذا
زد على ذلك أن هذا المتغير مهم في حالة رغبتنا في حساب عدد أحد أيام الأسبوع بين تاريخين مثل لو أردنا حساب أيام السبت بين تاريخين ففي هذه الحالة نجعل متغير الفترة هو W أي يوم في الأسبوع ومتغير أول يوم في الأسبوع هو يوم السبت وهذا مفيد في حالة رغبتك في حساب المدة بالأيام بين تاريخين بدون أيام الإجازات ( الخميس والجمعة مثلاً ) حيث تستخرج عدد أيام الخميس خلال التاريخين وعدد أيام الجمعة ثم تجمعها وتطرحها من مجموع الأيام بين التاريخين
متغير أول يوم في الأسبوع يستخدم أحد المتغيرات التالية :
vbUseSystem 0 نظام الويندوز
vbSunday 1 الأحد وهو الافتراضي
vbMonday 2 الاثنين
vbTuesday 3 الثلاثاء
vbWednesday 4 الأربعاء
vbThursday 5 الخميس
vbFriday 6 الجمعة
vbSaturday 7 السبت
أما متغير أول أسبوع في السنة فهو اختياري أيضاً وهو مفيد في حالة حساب عدد الأسابيع أي في حالة استخدام متغير الفترة ww حيث يحدد ما هو أول أسبوع سيتم اعتباره ضمن هذه السنة وهو يستخدم أحد المتغيرات التالية :
vbUseSystem 0 نظام الويندوز
vbFirstJan1 1 أول أسبوع يحتوي على أي يوم في السنة الجديدة وهو الافتراضي
vbFirstFourDays 2 الأسبوع الذي يحتوي على أربعة أيام أو أكثر في السنة الجديدة
vbFirstFullWeek 3 الأسبوع الذي تكون جميع أيامه في السنة الجديدة
المثال 1
Label1.Caption = DateDiff("y", 2000, 2003)
المثال 2
Label1.Caption = DateDiff("ww", #4/5/2003#, Now())
Label2.Caption = DateDiff("y", #4/10/2003#, Now())
DatePart
وتستخدم هذه الدالة للحصول على جزء معين من التاريخ الممرر لها مثل العام أو اليوم أو الشهر حيث تعيد متغيراً من نوع Variant (Integer) وتستخدم بالصيغة التالية
المثال 1
تعيد لنا السنه
MsgBox DatePart("yyyy", "1/5/1423")
ستكون النتيجه هي 1423
المثال2
تعيد لنا السنه الحاليه
MsgBox DatePart("yyyy", Date)
المثال 3
DatePart("m","1/5/1423")
يعيد لنا الشهر 5
المثال4
Dim TheDate As Date
Dim Msg
TheDate = InputBox("أدخل التاريخ")
Msg = "هذا التاريخ يقع في الربع: " & DatePart("q", TheDate) & " من السنة ""
MsgBox Msg
دوال التحقق من أنواع البيانات
IsDate
تقوم هذه الدالة باختبار تعبير التاريخ صحيح أم لا .
TestVar = InputBox("أدخل التعبير المراد اختبار أنه تاريخ")
If IsDate(TestVar) Then
MsgBox "هذا التعبير تاريخيا وهو كما يلي :" & Format(CVDate(TestVar), "dddddd")
Else
MsgBox "هذا التعبير ليس تاريخيا "
End If
IsNull
تقوم هذه الدالة باختبار الحقل هل يوجد به بيانات أم لا .
If IsNull(Text1.Text) Then
MsgBox("لا يوجد بيانات داخل صندوق النص")
Else
MsgBox("يوجد بيانات داخل صندوق النص")
End If
مثال اخر
Dim MyVar, MyCheck
MyCheck = IsNull( MyVar ) ' Returns False.
MyVar = ""
MyCheck = IsNull( MyVar ) ' Returns False.
MyVar = Null
MyCheck = IsNull( MyVar ) ' Returns True.
msgbox MyCheck
IsEmpty
تقوم هذه الدالة باختبار هل المتغير Boolean استهل أم لا ؟ ... وإرجاع القيمة True إذا كان المتغير قد استهل و القيمة False إذا لم يكن قد استهل فعلي سبيل المثال الإجراء الذي أعلن فيه عن المتغير لكن لم يخزن فيه أية بيانات يعتبر Empty وفي المثال التالي ستعرف لماذا يختلف المتغير الفارغ Empty عن العديم Null والصفري .
يوضح المثال التالي ما إذا كان المستخدم ادخل شيئا في الحقول أم لا ومنه تلاحظ ماذا يحدث عندما تطبق الدالة IsEmpty وعلي المتغير الذي لم يستهل فيه شئ .
Dim V1 As Variant, V2 As Variant,V3 As Variant, V4 As Variant
V1=0 ‘قيمة صفر
V2=Null ‘قيمة عديمة
V3=” “ ‘سلسلة عديمة
If Is Empty (V1) Then
MsgBox “فارغ V1 المتغير”
End If
If IsEmpty (V2) Then
MsgBox “فارغ V2 المتغير”
End If
If Is Empty (V3) Then
MsgBox “فارغ V3 المتغير”
End If
If Is Empty (V4) Then
MsgBox “فارغ V4 المتغير”
End If
والمخرجات الوحيدة التي ستحصل عليها من هذا البرنامج كما يلي
“فارغ V4 المتغير”
وذلك لأن كل المتغيرات الأخرى لديها نوع من البيانات أي أنه تم استهلالها فالمتغير V1 استهل بالصفر و المتغير V2 استهل بالقيمة العديمة والمتغير V3 استهل بالسلسلة العديمة أي أن كل متغير من هذه المتغيرات لدية قيمة مهما كان نوعها أما المتغير V4 فلم يستهل أصلا لأنه غير موجود في منطقة الإعلان عن المتغيرات ."
IsNumeric 4 "تستخدم لمعرفة ما إذا كان تعبير معين يدل على عدد أم لا فنحن ندخل للدالة تعبير من نوع Variant أو String فتختبر الدالة هذا التعبير هل يمكن التعامل مع هذا التعبير كعدد أم لا فإذا كان يمكن التعامل معه كعدد فإن الدالة IsNumeric ترجع بالقيمة True وإذا كان التعبير لا فإن الدالة ترجع بالقيمة False , فمثلا في المثال التالي كان المتغير ric من نوع String ويحمل عدد معين و نريد أن نختبر هذا العدد هل يمكن التعامل معه كعدد أم لا وفي حالتنا هذه سوف تكون قيمة المتغير True لان المتغير ric يصلح لأن يكون عدد.
ستكون نتيجة المثال 1هي True لأن المتغير ric يحمل عددا بالفعل .
ستكون نتيجة المثال 2 هي False لأن المتغير ric لا يحمل عددا فقط بل عدد مع أحرف وهذا غير صالح للتعامل معه كعدد .
المثال 1
Dim ric as string
ric="7.1342"
TafTaf=IsNumeric(ric)
المثال 2
Dim ric as string
ric="LM7.1342"
TafTaf=IsNumeric(ric)
VarType
تستخدم هذه الدالة في معرفة نوع بيانات المتغير .
Function IsReal(VarArg As String)
If VarType(VarArg) = 4 Or VarType(VarArg) = 5 Then
IsReal = True
Else
IsReal = False
End If
End Function
دوال المدخلات و المخرجات
MsgBox
يعرض رسالة في صندوق حوار وينتظر المستثمر حتى ينقر زر ويرجع قيمة Integer صحيحة وتشير الى الزر الذي نقرة المستثمر.
انظر الصيغة
الجزء الوصف
prompt وهو التعبير الذي تريدة ان يظهر في صندوق الحوار
buttons اختياري. هو تعبير رقمي يحدد نوع الازرار التي يجب ان تعرض
title اختياري.وهو عنوان يظهر شريط العنوان
helpfile اختياري.تعبير سلاسلي يعرف الملف help كي يستخدم ليزود بقرينة حساسية help من اجل صندوق الحوار .اذا زود helpfile يجب ان يزود context ايضا
context اختياري.تعبير رقمي والذي يعين رقم قرينة الhelp لموضوع helpالمناسب من قبل كاتب الhelp .
وضعيات المعامل buttons :
القيمة الثابت الوصف
vbokonly 0 يعرض زر ok فقط
vbokcancel 1 يعرض زري ok+cancel
vbabortretryIgnore 2 يعرض الازرار ignore+retry+abort
vbyesnocancel 3 يعرض yes+no+cancel
vbyesno 4 يعرض yes+no
vbretrycancel 5 يعرض cancel+retry
القيم المرجعة:
الوصف القيمة الثابت
vbOk 1 ok
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
الصيغة
Msgbox(prompt[,buttons],[title][,helpfile,context])
مثال
MsgBox ("الحمد لله رب العالمين")
مثال
MsgBox "الحمد لله رب العالمين", 64, "الحمد لله "
مثال
Private Sub Command1_Click()
ans = MsgBox("سيتم اغلاق البرنامج" + vbCr + "هل ترغب في المتابعة" _
& "", 4 + 32 + 524288 + 1048576, "تنبية")
If ans = vbYes Then
Unload Me
End If
End Sub
[color="LemonChiffon"]مثال اخر[/color]
Private Sub Command2_Click()
Response = MsgBox("لايحتوي مشغل الاقراص على سيدي البرنامج", 5, "مختارات اسلامية", Hlpfile, 0)
Select Case Response
Case vbRetry
MsgBox ("ok") ' Write your command
Case vbCancel
' Write your command
MsgBox ("no")
End Select
End Sub
InputBox()
الدالة InputBox() و الدالة InputBox$() : كل من الدالتين InputBox() والدالة InputBox$() يقومان بنفس العمل والفرق بينهما أن الدالة InputBox() تقبل البيانات المنوعة Variant والدالة InputBox$() تقبل بينات السلسلة فقط . و تأخذ الصورة التالية :
والفرق بين الدالة MsgBox والدالتين InputBox() و InputBox$() أن الدالة MsgBox تقوم بعرض البيانات للمستخدم أما الدالتين InputBox() و InputBox$() فمها يقومان باستقبال مدخلات المستخدم .
Msg=”أدخل قيمة من 1 إلى 3 ” ‘العبارة التي ستظهر في المربع
Title = ”مثال لمربع إدخال البيانات” ‘عنوان المربع
Defvalue=”1”
Answer=InputBox(Msg,Title,Defvalue) ‘استقبال المدخلات"
Iif
: تقوم هذه الدالة باختبار تعبير وإرجاع القيمة True (بمعني صح ) إذا تحقق التعبير أو القيمة False ( بمعني خطأ ) إذا لم يتحقق .
ويوضح هذا المثال استخدام الدالة Iif حيث يتم اختبار محتويات صندوق النص وتحديد محتوياته وبناء علي النتيجة الاختبار يتم تعين العبارة Large للمتغير Answer إذا كانت قيمة صندوق النص أكبر من 1000 أو العبارة Small إذا كانت أقل من أو تساوي 1000 .
Dim Answer As String
Answer = IIf(Text1.Text > 1000, "Large", "Small")
MsgBox "Large"
MsgBox "Small"
Shell
تستخدم هذه الدالة في تشغيل البرامج التنفيذية وتأخذ الصورة التالية :
Prgm=Shell(“Calc.exe”,1)
or
Dim RetVal
RetVal = Shell(""C:WINDOWSCALC.EXE"", 1) ' Run Calculator.
or
Shell("C:\Program Files\Microsoft office\Office\WINWORD.EXE", 1)
QBColor
تستخدم هذه الدالة لتلوين الكائنات .
Form1.BackColor = QBColor(3)
RGB
وهي الدالة الثانية التي تستخدم في التلوين حيث الأزرق ، الأخضر و الأحمر هي الألوان الثلاثة الأساسية التي تتكون منها جميع الألوان .
Form1.BackColor = RGB(255,0,0)
Error/Error$
تعيد هذه الدالة رسالة تبين نوع الخطأ الناتج أثناء التشغيل وتخص الكود المكتوب . المثال التالي يستخدم الدالة Error لإظهار رسالة الخطأ التي تخص الكود الذي يدخله المستخدم .
" "ErrNum = InputBox("أدخل رقم رسالة الخطأ المطلوب إظهار محتوياتها")
MsgBox ""رقم الرسالة هو :"" & ErrNum & "الرسالة هي : ;" & Error(ErrNum)
دوال متنوعة
CINT
تعيد النتيجة الى رقم صحيح بدون كسور integer
وهي تشبه الدالة Round مع اختلاف بسيط وهو لا يمكنك تحديد عدد الأرقام التي ستقرب إليه بعد العلامة العشرية وتأخذ الصورة التالية
MyNumber= CInt(4.52696)
حيث 4.52696 الرقم المراد تقريبه وسيكون الناتج عدد صحيح مقرب 5
CLNG
تعمل هذه الدالة علي تحويل نوع بيانات متغيرها إلى عدد طويل Long
انظر المثال
الدالة CLng تحول القيمة من عدد أحادي Single إلي عدد طويل Long لاحظ أن الرقم 25427.45 تم تقريبه إلي أقرب رقم صحيح ولذلك حصلنا علي الناتج 25427 أما الرقم 25427.55 فقد تم تقريبه إلي 25428 .
MyNumber= CLng(25427.45)
MyNumber= CLng(25427.55)
Csng
وتحول هذه الدالة نوع بيانات متغيرها إلي عدد أحادي الدقة Single لاحظ في هذا المثال الدالة CSng تحول القيمة Double إلي Single .
MyNumber= CSng(75.3421115)
ليكون الناتج 75.34211
Ccyr
وتعمل هذه الدالة بتحويل التعبير الموجود بين القوسين إلى قيمة محولة عملة Currency .
انظر المثال
MyNumber= Ccur(32465)
وتقوم هذه الدالة بتخزين نوع الرقم 32465 في المتغير بعد تحويلة إلى نوع عملة
Cvar
: وتعمل هذه الدالة علي تحويل بيانات متغيرها إلي النوع Variant ( الوقت / التاريخ أو عدد ذو علامة عشرية عائمة أو سلسلة حروف )
MyVar= CVar(1254)
StrConv
وهي دالة تحويل وتعمل هذه الدالة علي تحويل متغيرها علي حسب الثابت التي تستخدمه معها .
وفي المثال استخدمنا الثابت vbProperCase ويعمل علي تكبير الحرف الأول من كل كلمة .
والثابت vbLowerCase يعمل علي تصغير النص والثابت vbUpperCase تكبير النص
والثابت vbUncode تحويل النص من ASCII إلى Unicode والثابت vbFromUnicode العكس
aa = "welcome to bck"
MsgBox StrConv(aa, vbProperCase
)
Cbool
تعمل هذه الدالة علي تحويل بيانات متغيرها إلى قيمة منطقية وتأخذ الصورة التالية :
MyBool= CBool ("22")
Cbyte
تعمل هذه الدالة علي تحويل بيانات متغيرها إلي عدد صحيح بطول 1 بايت وتأخذ الصورة التالية :
MyByte= CByte ("22")
Cdate
تعمل هذه الدالة علي تحويل بيانات متغيرها إلى وقت أو تاريخ وتأخذ الصورة التالية :
ss = Now
Print Int(ss)
Print CDate(ss - Int(ss))
Cdec
تعمل هذه الدالة علي تحويل متغيرها إلي قيمة بفاصلة عشرية وهي تسمح لك بثمانية وعشرون رقما ولا يمكنك التصريح عن المتغيرات من النوع Decimal مباشرا وانما تستخدم النوع Variant للتصريح عنه وتأخذ الصورة التالية :
Dim d As Variant
d = 1E+28
Dim i As Variant
i = CDec(d)
MsgBox
دوال التعامل مع الملفات والفهارس
Lof
وهذه الدالة قريبة الشبه بالدالة FileLen ولكن الاختلاف بينهم أن هذه الدالة تعود بقيمه تمثل حجم الملفات المفتوحة بتمرير رقم للملف المفتوح وانظر المثال
وعند استخدامك الدالة filelen في حال ملف مفتوح يعطيك النتيجة "0" أي خاطئة .....
Open "C:\TafTaf.txt" For Binary As #1
MsgBox LOF(1) & " Byte"
Close 1
مثال 2
Dim FileLength
f = FreeFile
Open "C:\myfile.TXT" For Output As f
Write #f, "1233...."
File Length = LOF(f)
MsgBox FileLength
MsgBox FileLen("c:\myfile.txt")
Close #1
End Sub
نلاحظ الصندوق الأول يعطيك حجم الملف صحيح .
والصندوق الثاني يعطيك 0 لأن لايحق لك استخدام هذه الدالة هنا ... لأن الملف مفتوح..........
Loc
تعيد هذه الدالة موقع مؤشر القراءة والكتابة في الملف المفتوح انظر المثال
وتفيدنا هذه الدالة بأنها لا نزال نقرأ من الملف لطالما أنه لم يصل إلى نهاية الملف
ونهابة الملف نعرفها من حجمه بالبايت من الدالة filelen
ملاحظه على المثال 2:ولا تنسى أن تضيف إلى المشروع list1 & list2 & ملف myfile.txt وبداخله العديد من الكلمات .......
Dim ss
Open "c:\myfile.txt" For Input As #1
Loc (1)
Line Input #1, ss
MsgBox ss
Close #1
المثال 2
Dim MyLocation, MyLine
f = FreeFile
Open "c:\myfile.txt"" For Binary As f
Do While MyLocation < FileLen("c:myfile.txt")
MyLine = MyLine & Input(1, f)
MyLocation = Loc(f)
List1.AddItem MyLocation
List2.AddItem MyLine
Loop
Close #1
Eof
تعود هذه الدالة بقيمة منطقية تبين ما إذا قد تم الوصول لنهاية الملف أم لا (False – True ) وتأخذ الصورة التالية :انظر المثال
إذا سيظل يقرا الأسطر من الملف لطالما أنه لم يصل إلى نهاية الملف .......
المثال 1
Dim ss
Open "c:\myfile.txt" For Input As #1
Do While Not EOF(1(
Line Input #1, ss
Text1.Text = Text1.Text & vbNewLine & ss
Loop
Close #1
GetAttr
تمكنك هذه الدالة من معرفة خصائص الملف File Attributes
اي تفيدك في جلب سمات الملف أي للقراءة للكتابة ....... الخ ..
=======================================
وهذا جدول بالقيم المعادة : انظر المثال 2
vbNormal 0 عادي Normal.
vbReadOnly 1 للقراءة فقط Read-only.
vbHidden 2 مخفي Hidden.
vbSystem 4 ملف نظام System file.
vbDirectory 16 مجلد Directory or folder.
vbArchive 32 أرشيف File has changed since last backup
المثال 1
If GetAttr("c:\TafTaf.txt") = vbNormal Then
MsgBox "الملف غير مخفي"
Else
MsgBox "الملف مخفي"
End If
المثال 2
MsgBox GetAttr("c:\myfile.txt")
"
SetAttr
وهذه الدالة تمكنك من تغير خصائص الملفات شرط أساسي أن يكون الملف غير مفتوح
أي تعيين سمة للملف ( للقراءة أرشيف مخفي ..... الخ ) .
انظر المثال
فيصبح الملف myfile.txt مخفي ....
ويمكن تغيير البرامتر الثاني بالقيم التالية :
vbNormal 0 عادي
vbReadOnly 1 للقراءة فقط
vbHidden 2 مخفي
vbSystem 4 ملف نظام
vbArchive 32 أرشيف
كود:
SetAttr ("c:\TafTaf.txt"), vbHidden
FreeFile
: تعود هذه الدالة برقم غير محجوز ( رقم حر غير مستخدم ) لفتح الملف وتأخذ الصورة التالية :
انظر المثال 1
=====================
انظر المثال 2
إذا لاحظ أننا وضعنا للدالة القيمة "1" فيمكن الوصول للملف من تطبيق آخر في حين الكتابة ...
أما إذا وضعنا القيمة "0" فلا يمكن الوصول لملف إلا حين إغلاقه ...." "MyFree =
FreeFile
Open "c:\myfile.txt" For Input As #MyFree
MsgBox MyFree
Close #MyFree
المثال 2
Dim f
f = FreeFile(1)
Open "c:\myfile.txt" For Output As f
Print #f, "HELLO" MsgBox f
close(f)
Seek
تعمل هذه الدالة علي تغير موقع مؤشر القراءة والكتابة في الملف وتأخذ الصورة التالية :
Dim ss
Open "c:\myfile.txt" For Input As #1
Seek #1, 20
Line Input #1, ss
MsgBox ss
Close #1
SavePicture
تعمل هذه الدالة علي حفظ الصورة إلى ملف خارجي بأي امتداد تريده ومن أي أداة يمكنها احتواء صورة بداخلها وتأخذ الشكل التالي :
SavePicture Picture1.Picture, "C:\TafTaf.bmp"
LoadPicture
: تعمل هذه الدالة علي ( تحميل ) الصورة من مكان تحدده أنت أو من الممكن ( تحميل ) الصورة تابعة لكائن وتأخذ الصورة التالية :
Picture1.Picture = LoadPicture("c:\myfile.bmp")
FileAttr
تعيد لنا لماذا فتحنا الملف ..... هل للإضافة أم للقراءة أم .... الخ ...
انظر المثال.
فيظهر لنا مسج مكتوب فيه الرقم 8 ... وذلك لأننا فتحنا الملف ا للإضافة وها جدول بالقيم التي يرجعها
للقراءة Input 1
للكتابة Output 2
عشوائي Random 4
للإضافة Append 8
ثنائي Binary 32
*****************************
Dim FileNum, Mode
FileNum = 1
Open "c:\myfile.txt" For Append As FileNum
Mode = FileAttr(FileNum, 1)
MsgBox Mode
Close FileNum
Reset
تغلق جميع الملفات المفتوحة من أجل القراءة أو الكتابة ...... الخ بدلا من إغلاق كل ملف لوحده باستخدام الدالة close
Dim FileNumber
For FileNumber = 1 To 5
Open "c:\TEST" & FileNumber For Output As #FileNumber
Write #FileNumber, "Hello World"
Next FileNumber
Reset
لاحظ أننا فتحنا خمسة ملفات ولم نغلق كل واحد لوحده .......
لا تنسى أن تنشئ خمسة ملفات في الهارد c أسمائهم
test1,test2,test3,test4.test5
Dir
وتعمل هذه الدالة علي إرجاع قيمة نصية تمثل أسم الملف أو المجلد الذي يوافق شرط البحث.
:انظر المثال 1
وفي المثال الثاني 2
تعمل علي التأكد من وجود ملف myfile موجود في الدليل C:\ أم لا
وفي المثال 3
يبحث عن مجلدات في القرص C
وفي المثال 4
يبحث عم ملف بإمتداد TXT إذا كان مخفي
المثال 1
MyDir = Dir(("c:\"), vbDirectory)
Do Until MyDir =””
List1.AddItem MyDir
MyDir = Dir
Loop
المثال 2
If Dir("c:\myfile.Txt") <> "" Then
MsgBox "الملف موجود"
Else
MsgBox "الملف غير موجود"
End If
المثال3
MyName = Dir("c:\", vbDirectory)
المثال 4
MyFile = Dir("*.TXT", vbHidden)
'امثلة كثيرة لاستعمال الداله
Dim MyFile, MyPath, MyName
' In Microsoft Windows:
' Returns "WIN.INI" if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")
' Returns filename with specified extension. If more than one *.ini
' file exists, the first file found is returned.
MyFile = Dir("C:\WINDOWS\*.INI")
' Call Dir again without arguments to return the next *.INI file in the
' same directory.
MyFile = Dir
' Return first *.TXT file with a set hidden attribute.
MyFile = Dir("*.TXT", vbHidden)
' Display the names in C: that represent directories.
MyPath = "c:\" ' Set the path.
MyName = Dir(MyPath, vbDirectory) ' Retrieve the first entry.
Do While MyName <> "" ' Start the loop.
' Ignore the current directory and the encompassing directory.
If MyName <> "." And MyName <> ".." Then
' Use bitwise comparison to make sure MyName is a directory.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Display entry only if it
End If ' it represents a directory.
End If
MyName = Dir ' Get next entry.
Loop
يتبع
MkDir
تعمل هذه الدالة علي إنشاء ( فهرس جديد ) مجلد جديد في نفس الدليل الذي تحدده ويأخذ الصورة التالية :
MkDir "c:\mydir"
او
Call MkDir("c:\mydir")
RmDir
وهذه الدالة هي عكس الدالة MkDir في تعمل علي حذف (الفهرس) المجلد وتأخذ الصورة التالية :
RmDir "c:\mydir"
Kill
تعمل هذه الدالة علي حذف الملف الذي تحدد مساره وامتداده وتأخذ الصورة التالية
انظر المثال
=============================
ويمكن أن يكون بأحد الأمثلة التالية :
حذف ملف ww.txt Call Kill("c:\ww.txt")
حذف كل ملفات النص في الهارد c Call Kill("c:\*.txt")
حذف كل الملفات الموجودة في c Call Kill("c:\*.*")
*****************************" "Kill "c:\myfile.txt"
FileCopy
تعمل هذه الدالة علي نسخ الملفات وتأخذ الصورة التالية :انظر المثال
حيث myfile الملف المراد نسخه من مساره القديم C:\ إلى مسار جديد D:\ مع تغير اسم الملف باسم ourfile.
FileCopy "C:\myfile.txt", "D:\ourfile.txt"
CurDir
تعمل هذه الدالة علي تحديد الدليل الحالي للقرص الذي ينفذ منه البرنامج أو محرك أقراص آخر ترسله إلى الدالة ويأخذ الصورة التالية :انظر المثال 1
و المثال الثاني 2:
يوضح لنا كيفه استخدام الدالة CurDir في تحديد مسار البرنامج myfile.exe المراد تشغيله في نفس المسار الحالي للبرنامج الأصلي . وهذا يذكرنا بالكائن وخاصيته App.path .
المثال 1
msgbox CurDir
المثال 2
PathName = Shell(CurDir & "\" & "myfile.exe", 1)
Chdrive
وتعمل هذه الدالة علي تغير مشغل القرص الحالي بمشغل قرص آخر وتأخذ الصورة التالية :
NewDrive = InputBox("أدخل أسم المشغل المطلوب")
ChDrive NewDrive
ChDir
تعمل هذه الدالة علي تغير الدليل الحالي ( الافتراضي ) إلي دليل آخر علي نفس مشغل القرص وتأخذ الصورة التالية :
ChDir "C:\MyFolder"
FileLen
تعود هذه الدالة بقيمه تمثل حجم الملف بالبايت وتأخذ الصورة التالية
وإذا أردنا بالكيلو بايت نقسم على ألف .انظر الثال 2
"ss = FileLen("c:myfile.txt")
MsgBox ss & " Byte"
المثال 2
MsgBox FileLen("c:\windows\calc.exe") / 1024 & " KB"
المثال3
Dim GetFileLen
Private Sub Command1_Click()
GetFileLen = FileLen(App.Path & "/Form1.frm")
msgbox GetFileLen / 1024 & " KB"
End Sub
المثال4
Private Sub Command2_Click()
Text1.Text = FileLen(App.Path & "/Project1.vbp") & " Bytes"
End Sub
FileDateTime
وتعطي لك هذه الدالة معلومات عن وقت وتاريخ إنشاء الملف وتأخذ الصورة التالية
ss = FileDateTime("c:TafTaf.txt")
MsgBox ss
NewFileName
ولهذا الأمر استخدامين فهو يقوم بنقل الملفات من مكان إلى آخر مع إمكانية إعادة تسمية الملف
المثال 1
نقوم بنقل الملف الى مكان آخر
المثال 2
نقوم باعادة تسمية الملف
Dim OldFileName, NewFileName
Private Sub Command1_Click()
OldFileName = App.Path & "/Temp3.txt"
NewFileName = "D:\Temp3.txt"
Name OldFileName As NewFileName
End Sub
Private Sub Command2_Click()
OldFileName = App.Path & "/Temp3.txt"
NewFileName = App.Path & "/TempChanged.txt"
Name OldFileName As NewFileName
End Sub
App.Path
تستعمل للحصول على المسار الحالي للبرنامج
Dim pathname
pathname = App.Path
If Right$(pathname, 1) <> "\" Then
pathname = pathname + ""
End If
MsgBox pathname
(ربنا لا تؤاخذنا إن نسينا أو أخطأنا)
