• 0
مجرد مسلم

شرح مفصل لمعظم دوال فيجول بيسك

سؤال

الشرح منقول

الدوال الرياضية

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", "(@@) @@@[email protected]@@@") '(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

(ربنا لا تؤاخذنا إن نسينا أو أخطأنا)

vbfunctions.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

جزاك الله خيرا أخي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

عذرا للرد الان لاني لاول مرة اشاهد الموضوع

شكرا اخي على الشرح

اظن ان الموضوع يستاهل التثبيت :)
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .