الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دروس تعلمك كيف تصحح أخطائك بنفسك debugging

مغلق
بدأه VB6-Rocket في 1 مايو 2005 · 36 رد · 14,091 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخوانى لقد لاحظت ان الكثير من الشباب يطرحون أسئلة متعلقة

بأخطاء فى الكود و لا يعرفون أين الخطأ و من ثم يطرحون الكود

حتى يصححه لهم الخبراء مع ان بعضهم لم يحاول حتى اكتشاف الخطأ

بنفسه ...

و لقد لاحظت ان الكثير من الشباب لا يدرى شيئا عن طرق اكتشاف

الاخطاء و طرق التتبع debugging & Tracing و كيفية تصيد الاخطاء و بعض

الأساسيات الواجب اتباعها لتقليل فرص الاخطاء...!

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

كل ما سبق ذكره و بالتالى إن شاء الله ستقل عدد الاسئلة المتكررة

و الاسئلة سهلة الحل والتى تشكل موضوع على الفاضى

لكن قبل البدأ :-

أولا :

أحب استفسر اذا كان فيه حد قدم الموضوع ده قبل كده

و انا دورت و ملقتش بس يمكن يكون فيه !؟ أرجو اجابة من المشرفين

ثانيا :

أريد بعض التأيد من الأعضاء حتى أشعر أنى أقدم شيئا مفيدا لهم

ثالثا :

مرجعى ان قدمت هذا الموضوع إن شاء الله هو كتاب اسمه

Debugging Visual Basic

و مؤلفا الكتاب (ديفيد يونج) وهو أحد الخبراء المشهورين فى ألvb

و الثانى (جيف كنت ) خبير فى علم الكمبيوتر و خبير vb و c++

و انا بانتظار ردود الاخوة

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#3

حبيبنا الغالي

لقد و الله اصبت ووفقت

نسأل الله أن يوفقك و يأخذ بيدك

#4

السلام عليكم

جزاك الله خيرا ...... على كل حال اخي الحبيب انا لست من هوات ولا محترف ولا راغب فيجوال بيسك

لكن احببت ان اشكرك على التعليق الذي بلأسفل وعلى الرروح العالية بمساعدةالشباب

#5

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

سلسلة دروس Dubgging and Tracing (طرق التتبع و تصحيح الاخطاء)

الدرس الأول

إن شاء الله سوف أبدأ بمقدمة هامة لكل مبرمج سواء كان مبتدأ أو محترف قيل الدخول فى طرق التتبع debugging and tracing و من يطبق هذه المقدمة عمليا أضمن أنه سوف يصبح مبرمجا محترما إن شاء الله يستطيع العمل منفردا أو ضمن قريق برمجى وهى مقدمة تضمن لك بداية صحيحة فى البرمجة بإذن الله ... بالنسبة للأخوة الذين يملون سريعا هذه هى البداية الصحيحة فإما ان تصبح قويا أو تظل كما انت .. حاول ان تتفوق على مللك

مقدمة عن تصميم البرامج

سواء كنت تقوم بإنشاء البرنامج الخاص بك باستخدام فيجوال بيسك ام لا فإته يتحتم عليك ان تمعن التفكير فى الطريقة التى سوف تقوم باتباعها فى تصميم البرنامج .. لمزيد من التوضيح فإنك ان لم تأخذ الوقت الكافى فى عمل التصميم العام للبرنامج قبل البدأ بكتابة الكود فسوف تعترض طريقك الكثير الكثير من العقبات التى تعترض سيرك وانت تبرمج و تظهر مشاكل لم تكن تتوقعها لانك لم تحاول توقع كيف ستصمم برنامجك من البداية .. وقد يعتبر الكثير من المبرمجين ان عملية التصميم مملة للغاية ولكن تصور مدى سهولة انشاء المشروع و الكود و انت قد عملت حساب معظم المشاكل المتوقعة و حلولها .... شئ رائع 

قبل البدأ فى برنامج معين لابد من تحديد بعض النقاط المهمة :

1 – ما هو الهدف أو الغرض من انشاء البرنامج

2 – ماهى امكانيات و حدود البرنامج

3- من هو الشخص أو المؤسسة التى ستستفيد من البرنامج

4- ما هو الوقت المخصص لعملية ( التصميم و التنفيذ )

ما يهمنا فى النقاط السابقة هى نقطة التنفيذ ... حيث فى هذه النقطة تبدأ فيها كتابة الكود و تبدأ المشاكل و الأخطاء بالظهور ويوجد بعض النقاط الواجب مراعاتها عند كتابة الكود : -

1- وضع المسافات بين الاكواد ( للتنسيق و سهولة التتبع ) واليك مثال

--------------------------------------------------------

هذا مثال لكود غير منسق

--------------------

For I =1 to 5

If i=5 then

Msgbox "last"

Else

C=c+i

End if

Next i

هذا مثال جيد على التنسيق الصحيح

For I =1 to 5

If i=5 then

Msgbox "last"

Else

C=c+i

End if

Next i

طبعا الكود الثانى اسهل فى التتبع من الكود الأول و بدلا من وضع المسافات فى أول السطر لتنسيق الكود تستطيع استخدام مفتاح tab و أيضا لتنيق مجموعة من الأسطر دفعة واحدة علم على مجموعة السطور بالماوس ثم اضغط مفتاح tab ستجد أن مجموعة السطور المختارة تحركت خطوة الى اليمين ... رائع 

2- أهمية اضافة التعليقات الى الكود :

-----------------------------

ان أهمية اضافة التعليقات على الكود سوف تظهر عند عمل برنامج كبير أو دالة معقدة .. حيث وانت تكتب الكود تشعر بأنك لن تنسى هذه الافكار أبدا و لكن تعالى بعد شهرين مثلا وتريد ان تطور الكود و شوف الكود سوف تندهش كأنك تراه لأول مرة وكأن شخص أخر هو الذى برمجه و تحاول فهمه من جديد و بالتالى استهلاك للوقت و الجهد وذلك لأنك كسلت فى وضع تعليقات على الكود . والتعليق على الكود هو وصف للكود و الهدف منه حيث تضع بجانب كل سطر تعليق يوضح الهدف من وجود هذا السطر .

واليك مثال :

متغير يحمل عدد الموظفين Dim intC as Integer '

و أيضا عندما تبرمج دالة Function أو Sub Procedure من الأفضل كتابة الهدف منهم فوقهم مباشرة

3 – الطرق الصحيحة لتسمية أنواع البيانات

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

و بالتالى ظهرت طرق معينة فى تسمية المتغيرات وذلك للاستدلال على غرض المتغير من اسمه وأشهر هذه الطرق هى :

( الطريقة المجرية للتسمية ) :

-----------------------

سميت الطريقة بهذا الاسم لأن مخترعها مجرى الأصل وتتكون هذه الطريقة من 3 أجزاء

1- نوع أساسى – ( يحوى اختصارات لأسماء الكائنات Controls .)

2 – بادئة - ( يحوى اختصارات لانواع البيانات)

3- معرف -( يدل على الغرض من المتغير أو الكائن)

و لتكوين اسم ليس من الضرورى استخدام الثلاث أجزاء معا و لكن قد تستخدم ( نوع أساسى مع معرف ) أو ( بادئة مع معرف )

واليكم جدول الأنواع الاساسية

CheckBox = chk

CommandButton = cmd

FrameControl = fra

Form = frm

Label = lbl

ObtionButton or Radio Button = opt

TextBox = txt

و اليكم جدول البادئة

Array = a

Date = dt

Double = dbl

Global variable = g

Form-level variables = f

Handle = h , hnd

Integer = i , int

Long = l , lng

Module-level variables = m

Number = n

String = s , str

Single = sgl

Variant = v

الان لنرى كيف نسمى منغير من خلال بعض الامثلة

1- miCounter : هو متغير معرف فى وحدة نمطية module يتم اساخدامه للاحتفاظ بالارقام الصحيحة

و قد عرفت ذلك من حرف m و حرف i و Counter المعرف معناها عداد

2- dtBirth : تعبر عن متغير تاريخ و يحمل قيمة تاريخ الميلاد

3 – txtPassword : مربع نص مخصص لكلمات المرور

4 – lblaEmpInfo : مصفوفة من ال labels تخمل بيانات موظقين

و أرجو أن تكونو فهمتم طريقة التسمية

و سوف نكمل إن شاء الله باقى طرق التعامل مع الكود فى الدرس القادم و أيضا سنبدأ فى أول طرق التتبع

و بانتظار أى أسئلة أو توجيهات من الأخوة

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#6
اقتباس
هذا مثال جيد على التنسيق الصحيح

---------------- For I =1 to 5

------------- If i=5 then

-- Msgbox "last"

-------------------- Else

------------ C=c+i

------------------ End if

----------------------- Next i

معذرة اعتبر العلامة (-) ليس لها وجود

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#7

ارك الله فيك أخي VB6-Rocket ..

ani.gif
#8

شكرا أخى / عبدالله فتحى

و أشكر كل من ساهم فى تثبيت هذا الموضوع

و إن شاء الله كل الشباب يستفيد

:)

و انتظرو الدرس التالى غد إن شاء الله

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#9

بالتوفيق اخي

والله بالفعل موضوع حلو ويجعل البرنامج اسهل عند مراجعة الكود

من دروسي :

درس مبسط لفهم ال VB6.... Resource File

تعلم تصميم اداة ال Active X خطوة بخطوة (الجزء الأول)

الطريقة المثلى للتعامل مع مسجل النظام( VB6..... (Registry

من برامجي :

Abo Sabreen Messenger v2.1 العملاق

--------------------------------------------------

مفكرة الإسلام؛ طالع أخبار العالم وأخبار المجاهدين بعيدا عن التعتيم الاعلامي.

#10

أخى VB6-Rocket بارك الله فيك

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

فالموضوع فى تصورى كبير جداً ولكن لو سرت فيه بهذه الطريقة ربما لاتنتهى منه العام بعد القادم

فأرجو ان تعيد النظر فى طريق عرضك للموضوع

معزرة على هذا الاسلوب فى الرد ولكن تذكر ان المؤمن مرآة أخية

#11

ماشاء الله

جزُيت خيرا يا أخ ابراهيم

:)

gaza3-3.jpg
#12

شكرا لكم أخوانى على التشجيع :)

أما بالنسبة للأخ رمضان :

انا فضلت ان الموضوع يكون له بداية و أساس قوى يستطيع الشباب الاعتماد عليه حتى يأتى باقى الموضوع سهلا لهم إن شاء الله

و بإذن الله سوف أطرح كل يوم درسا حتى يتم لا يقل حماس الشباب المتابعين للموضوع

و كان هدفى الاساسى من الموضوع هو تعليم طرق Debugging , BreakPoints , Tracing , Watches , immediate windows

و ما الى ذلك ....

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

و ان اغفلت شيئا أرجو أخبارى به

وتحياتى لكم جميعا

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#13

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

الدرس الثانى

تابع النقاط الواجب مراعاتها عند كتابة الكود :

---------------------------------------------

4- استخدام جملة Option Explicit

-------------------------------

ان لغة فيجوال بيسك تتساهل فى انك ليس من المحتم عليك تعريف متغير قبل استخدامه يعنى ممكن

تكتب c = 10 فسيعتبر الفيجوال بيسك انك تريد تعريف c كأنه متغير من نوع Variant ولكن من

غير المستحب عدم تعريف متغيراتك و ذلك لأن Variant يأخذ مساحة أكبر من الذاكرة وكذلك قد تنسى

سبب وجود هذا المتغير ويؤدى الى اعتمادك على هذه الطريقة الغير مضمونة أيضا فى النتائج....

وبالتالى لابد من تعريف أى متغير قبل استخدامه وجملة Option Explicit تمنع تنفيذ البرنامج اذا كان

فيه أى متغير غير معرف وتكتب هذه الجملة فى بداية الكود... وبالتالى هى تذكرة لك حتى لا تقع فى

هذا الخطأ

و تعريف المتغير يعنى تكتب Dim C as integer , Dim F as Double وهكذا

وأيضا تستطيع تفعيل Option Explicit بدون كتابتها وذلك من قائمة الفيجوال بسيك اتبع الاتى

Tools >> Options >> Editor (tab) >> Code setting (frame) >> Require Variable Declareation

علم عليها علامة صح ثم اعد تشغيل الفيجوال بيسك وحاول كتابة متغير من غير تعريفه فلن يقبل البرنامج

التشغيل بدون اعلان هذا المتغير

5- احرص فى استخدام الجملة Dim

-----------------------------

بعض الناس تعرف أكثر من متغير فى سطر واحد كالاتى

Dim ABC ,DEF ,GHI as Integer

الخطأ هنا أن اخر متغير هو الذى سيعرف ك Integer أما الباقى فسيعرف ك Variant

و الشكل الصحيح للتعريف فى سطر واحد هو الاتى

Dim ABC as Integer,DEF as Integer,GHI as Integer

والأن نتطرق ألى أنواع الأخطاء وهما نوعين :

---------------------------------------

1- أخطاء لغوية (فى كتابة الاوامر و المتغيرات)

2 - أخطاء منطقية (فى طريقة التفكير و استخدام منطق غير سليم)

**************************************************

********* مراحل اكتشاف الاخطاء فى الكود ***********

**************************************************

*** المرحلة الأولى -------(تصنف كأخطاء لغوية)

-----------------

لن يتم تجميع الكودو يحدث هذا غالبا بسبب كتابة اسم متغير او اسم كنترول بشكل خاطئ من الناحية الهجائية

أو نتيجة وجود خطأ فى القواعد المتبعة لتنفيذ أمر معين .

*** المرحلة الثانية ------ (تصنف كأخطاء منطقية )

-------------------

سوف يتم تجميع الكود و تشغيل البرنامج لكن سيتم انهاء البرنامج نظرا لوجود خطأ اثناء وقت التشغيل

و هو خطأ منطقى لكنه أثر فى شئ معين ونتج عنه رسالة خطأ

*** المرحلة الثالثة ------ (أخطر أنواع الأخطاء المنطقية)

-------------------

سوف يعمل البرنامج بدون أخطاء لكن نتائج البرنامج ستظهر على غير المتوقع

أولا : بالنسبة للمرحلة الأولى : الاخطاء اللغوية أو الكتابية ( الحلول و النصائح )

-------------------------------------------------

و هى أسهل أنواع الأخطاء و الأمثلة الخاصة بها :

-------------------------------------------

1 - كتابة بعض الاوامر بطريقة خاطئة مثل :

كأن تكتب Wile بدلا من While

كأن تكتب Esle بدلا من Else

رسالة الخطأ Sub or Function not defined

2- كاتبة الأوامر بشكل غير كامل مثل :

كأن تكتب قاعدة IF بدون THEN أو بدون END IF

تكتب قاعدة For و تنسى كتابة NEXT أو تكتب ما بعد ال FOR بشكر خاطئ

تكتب قاعدة While و تنسى قفلها ب WEND

رسالة الخطأ While without Wend

3- استدعاء بعض الدوال Functions الثابتة فى الفيجوال بيسك بدون كتابة جميع المدخلات الخاصة بها

مثال : دالة Right وهى مدخلاتها متغير String و الطول المطلوب Lenth

فأنت قد تدخل String فقط و تنسى تحديد الطول المطلوب Lenth وبالتالى يظهر خطأ لأن هذا

المتغير ينبغى ادخاله للدالة و لكن يوجد بعض الدوال بها مدخلات اختيارية فى الادخال يعنى لو

أدخلتها أم لم تدخلها لن يظهر لك رسالة خطأ .... ولتعرف اذا كانت مدخلات الدالة أختيارية

أم لا فأنه عند كتابة اسم الدالة Function ثم تفتح القوس الخاص بها سيظهر لك مربع أصفر

به كل المدخلات المطلوبة للدالة والمدخلات الاختيارية سوف تجد حولها قوسين من نوع []

رسالة الخطأ Argument not optional

4- عند كتابة دالة Function فلابد أن تتوقع رجوع قيمة او نتيجة من الدالة وبالتالى المفروض ان تكتب

بهذه الصورة :

RetVal = Right("ARABTEAM",4)I و فى هذه الحالة RetVal = TEAM

أما ال Sub Procedure فإنها تنفذ عمليات معينة ولكنها لا ترجع ناتج و بالتالى تكتب كالتالى

FileCopy "c:\ttt.txt" , "d:\fff.txt"

و بالتالى اذا حاولت معاملة ال Sub ك Function يظهر الخطأ

رسالة الخطأ Expected Function

5- أن تعلن عن متغير و تسميه باسم كلمة محجوزة فى الفيجوال بيسك مثل : Dim While as Integer

رسالة الخطأ Expected : Identifier أو Syntax Error

وسنكمل الدرس الفادم إن شاء الله

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#14

بارك الله فيك أخي :: VB6-Rocket ::

زادك الله من علمه وفضله

سبحان الله وبحمده ... سبحان الله العظيم

#15

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

الدرس الثالث

ثانيا المرحلة الثانية : وهى من الأخطاء المنطقية :

------------------------------------------------

وهى من الأخطاء المنطقية التى يسهل اكتشافها لأنها تؤدى الى رسالة خطأ

واليكم المثال التالى :

------------------------

1- اذا كان عندك ListBox وهو به 10 عناصر وتريد حذفهم جميعا فقد يكتب أحدهم الكود كالتالى

For i = 0 to list1.ListCount
list1.RemoveItem i
Next I

سوف تظهر رسالة خطأ عند تنفيذ الكود وذلك لأن مصفوفة عناصر ال ListBox تبدأ من الصفر و بالتالى

اذا كان عدد العناصر 10 فأن أخر عنصر سيصبح رقمه 9 وبالتالى المفروض ان يكتب أول سطر فى المثال كالتالى

For i = 0 to list1.ListCount - 1

و رسالة الخطأ هى Invalid Procedure call or argument

---------->>>>> توقف ففففففففف <<<<<-----------هل تعتقد أنك حللت مشكلة الخطأ فى المثال السابق ...إذا أنت واهم .... جرب وسترى نفس رسالة الخطأ

ما هو السبب الحقيقى للخطأ ؟؟؟؟؟؟؟ اليك السبب

فى كل لفة تزيد قيمة ال i بواحد و أيضا تقل قيمة List1.ListCount بواحد لأننا فى كل لفة نزيل عنصر

من ال ListBox و بالتالى ستظن أن المشكلة كلها تنحصرفى تناقص ListCount ..ليس كل المشكلة أيضا لأن

For statment يحتفظ بعدد اللفات فى أول سطر للتنفيذ و لا يتأثر بعد ذلك اذا تغيرت قيمة ListCount حيث

فى هذا المثال سيلف 10 لفات بغض النظر عن تغير قيمة ال ListCount خلال الدوران....

أساس المشكلة أنه عند ازالة العنصر رقم صفر فإن ذلك يؤدى الى حدوث عملية shifting للأسفل أى ينتقل العنصر

رقم واحد ليحل محل رقم صفر وينتقل رقم 2 ليحل محل رقم 1 وهكذا كأن هناك مجموعة من الأطباق فوق بعضها

و هم 10 أطباق و انت تعد 1 ثم تسحب الطبق الأول من الأسفل ثم اثنين و تسحب رقم اثنين 3 وتسحب رقم 3 و 4

ثم تسحب رقم 4 و 5 ثم تسحب رقم خمسة ثم رقم 6 و لن تجده لأن الاطباق تناقصت حتى أصبحت خمسة فقط

هل فهمت أين المشكلة الحقيقية .

و بالتالى فإن الحل المنطقى السليم هو ان تزيل أول طبق من الأسفل 10 مرات متتالية وبالتالى الكود

السليم هو كالتالى

For i = 0 to list1.ListCount - 1
list1.RemoveItem 0
Next i

أو الحل الاخر انك تزيل الأطباق من الأعلى بالترتيب .. 10 ثم 9 ثم 8 و هكذا ويكون الحل كالتالى

For i = list1.ListCount-1 to 0 Step -1
list1.RemoveItem i
Next i

ثالثا المرحلة الثالثة :

-----------------------

الأخطاء المنطقية التى تؤدى الى مخرجات خاطئة بدون رسائل خطأ

و اليكم بعض الامثلة البسيطة :

----------------------------

(1)

dim intNumber as integer

intNumber = 3/2
txtEqual = str(intNumber)

النتيجة المتوقعة = 1.5

النتيجة الفعلية = 2

السبب أنك عرفت المتغير intNumber ليقبل أرقام صحيحة فقط وبالتالى أى رقم غير صحيح يدخل المتغير

سيتم تقريبه للرقم الأعلى بغض النظر عن قيمة الكسر واليك بعض الامثلة

5.7 = 6

5.5 = 6

5.2 = 6

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

و تصور نتيجة خطأ كهذا فى برنامج Calculator ..........!!!!

(2)

تصور أنك تريد عرض جميع أسماء العملاء المسجلين فى قاعدة البيانات فى TextBox

فإن الكود سيكون كالتالى :

حيث rs هو اسم ال RecordSet

و txtData هو اسم مربع النص

For i = 1 to rs.RecordCount
txtData = txtData + rs("Name").value + vbcrlf
Next i

وتظهر النتيجة ان البرنامج سيعرض اسم أول عميل فقط و سيكون متكرر بعدد لفات الدوارة

والمشكلة ان المبرمج نسى ان ينقل مؤشر السجل الى السجل الذى يليه فى كل لفة واليك الكود

بعد التعديل :

For i = 1 to rs.RecordCount
txtData = txtData + rs("Name").value + vbcrlf
rs.MoveNext
Next i

أرجو ان يكون (أحد) الأخوة قد استفاد بهذا الدرس

و إن شاء الله ندخل فى أول طريقة فعلية للتتبع الأخطاء Debugging الدرس القادم

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#16

اخوانى الأعزاء المتابعين للموضوع ان تمنحونى ثلاثة أيام فقط لأنى فى ظروف طارئة هذه الأيام و إن شاء الله سوف أطرح الدرس الرابع يوم الثلاثاء

و أكرر أسفى الشديد

والى للقاء

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#17

السلام عليكم

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

ولكن عندي طلب لو سمحت

أن تجعل الدروس على شكل pdf بالإضافة للذي تشرحه

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

اللهم صل وسلم وزد وبارك على سيدنا محمد وعلى آله وصحبه وسلم

تعلم كيف تقرأ من ملف باستخدام لغة السي

Routers Programming-الدرس الأول

#18

السلام عليكم

أخوانى الأعزاء لا أعرف ماذا أقول لكم بعد انقطاع دام ما يقرب من الأسبوعين وذلك نظرا

لظروف قهرية أرجو أن تقدروها لدرجة اننى لم أرى الكمبيوتر الخاص بى الا قليلا جدا و

وبالتالى توقفت عن تطوير برنامج مقاهى الانترنت و برنامج الفير وول !!!

و بعون الله من اليوم سوف أتواجد باستمرار فى المنتدى كالسابق

وأقول لكم انا اسف جدا جدا جدا

بالنسبة للأخ العزيز eng_ibr

بأذن الله سوف أنفذ طلبك ولن أخذلك ولكن...

أريد فقط أن أشعر ان هناك بعض من الاخوة يهتم بالموضوع القادم و هو طرق ال

debugging و Tracing نظرا لطول الموضوع و الجهد الذى سوف أبذله فيه حيث

أنى خلال هذه الأيام أحتاج كل ذرة وقت وإذا كان المزضوع القادم غير مفيد لكم

أرجو اعلامى بكل صراحة حتى نوفر وقتا وجهدا فى شئ اخر أنفع وأفيد لكم....

و انتظر ردودكم يا اخوانى

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#19

وفقك الله وكان الله في عونك لبذل المزيد في ايصال الأمانة العلمية

وألف شكر

158.gif

هناك فرق بين أن تكبر بالعمر

، و أن تكبر بالعقل
فالأولى ، إجباري
، والثانية اختياري .."
 
 

164684_514411088579476_442405016_n.jpg

#20

امض قدما في الموضوع

فهو بالنسبة لي مهم لانه ينفع في المستقبل

من دروسي :

درس مبسط لفهم ال VB6.... Resource File

تعلم تصميم اداة ال Active X خطوة بخطوة (الجزء الأول)

الطريقة المثلى للتعامل مع مسجل النظام( VB6..... (Registry

من برامجي :

Abo Sabreen Messenger v2.1 العملاق

--------------------------------------------------

مفكرة الإسلام؛ طالع أخبار العالم وأخبار المجاهدين بعيدا عن التعتيم الاعلامي.

#21

ربنا يوفقك ويعينك على ظروفك وترجع لنا متميز كما كنت وتستمر فى العطاء:rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#22

شكرا اخوانى على الرد

و الحمدلله ما زال هناك من يهتم بهذا الموضوع المهم فى نظر القليل من الاخوة أمثالكم :o

وسأبدأ بإذن الله فى تحضير الدرس الرابع

انتظرونى :)

1- لا خير في حسن الجسوم وطولها إن لم يزن حسن الجسوم عقول

2- لا تنظر إلى صغر الخطيئة .. ولكن انظر إلى عظم من عصيت

3- قد يجمع المال غير آكله . . ويأكل المال غير من جمعه

4- من وثق بالله أغناه ومن توكل عليه كفاه ومن خافه قلت مخافته ومن عرفه تمت معرفته

5- أن تضيء شمعة صغيرة خير لك من أن تنفق عمرك تلعن الظلام

6- لا يحزنك إنك فشلت مادمت تحاول الوقوف على قدميك من جديد

7- صديقك من يصارحك بأخطائك لا من يجملها ليكسب رضاءك

8 - الابتسامة كلمة طيبة بغير حروف

9- لا داعى للخوف من صوت الرصاص .. فالرصاصة التى تقتلك لن تسمع صوتها

10 -- يستطيع الناس أن يعيشوا بلا هواء بضع دقائق وبلا ماء أسبوعين وبلا

طعام حوالى شهرين وبلا أفكار سنوات لا حصر لها

من مواضيعى :

--------------

دروس تعلم كيف تصحح أخطائك بنفسك

برنامج الحائط النارى العربى ---- جديد

برنامج ساعة بالعقارب ------ جديد

لعبة سناك الشهيرة مع الكود

غير نظرتك لل picturebox وانظر ماذا فعلت بها

حمل ملف فلاش على الفورم بكل سهولة

مكتبة تحتوى على 50000 كتاب مجانى معظمها عن الكمبيوتر و البرمجة

برنامج المترجم العربى لترجمة الافلام

#23

الله يعطيك الف عافية..ويجزاك خير

والله شيء مشرف فعلاً... -waf

#24

الله يعطيك العافية

#25

يعطيك الف عافية اخوي على المجهود الطيب بس عندي سؤال

ماهي الطريقة التي استطيع تحميل محتويات cobmo من حقل في قاعدة البيانات حاولت بكذا طرييقة ولم تنفع البرنامج يعلق لما احطلها جملة اسكيو ال مع امر حلقة الدورران

ارجو منك او من احد الاعضاء الرد على سؤالي

هذا الموضوع مغلق.

مواضيع مشابهة