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

مشكلة End IF

مغلق
بدأه mohamed_k78 في 6 ديسمبر 2004 · 10 رد · 1,174 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أخواني الكرام أرجو منكم التكرم بأفادتي ....عن مشكلة End If....عندما أكتب جملة if بدون مشاكل ولكن عند النهاية يعني لما تخلص الجملة وأريد أن أغلق الجملة بشكل طبيعي بـــEnd If يضع تحتها خط متعرج ولا يقبلها ويكتب

"End If" must be preceded by a matching "if " .....حاولت تغيرها بما أستطيع لكن دون جدوى....

أرجو من أخواتي في الله أن من يعرف حل لهذة المشكلة أن يرسلها لي فورا أو يعطني حل ...وكلنا نعرف أن لا برمجة بدون قاعدة if ..هذا إعتقدي....وشاكر لكم جميعا

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

#3

أظن السبب هو إستخدامه لجملة شرط في سطر واحد (أي يكتب ال then ويتبعها بجواب الشرط في نفس السطر، وبعد ذلك يكتب End If في سطر جديد)، هذا هو السبب الوحيد الذي يمكن تخيله، حاول أن تكون كلمة Then هي آخر ما تكتب في السطر.

مثال هذا الجملة الشرطية لا تحتاج الى End If:

Dim X as integer

Dim Y as integer

If X=Y then End

هنا جواب الشرط (الكلمة End) جاءت في نفس سطر If لذا لن نحتاج الى End If

أما في هذه الجملة فنحن نحتاج الى End If

Dim X as integer

Dim Y as integer

If X=Y then

End

End If

Learn Japanese :>>> http://www.nouben.com/

#4

هل يقوم المحرر بإكمال هذه الجمل تلقائيا؟؟؟؟

The World Must Be Crazy

#5

نعم المحرر عندما تكتب Then وتضغط الزر Enter يكتب End If تلقائياً كما تفضلت، ولكن مشكلة الأخ السائل تختلف بأنه جملته الشرطية (كما خمنتها) لا تتطلب End If لكونه يكتب الجملة متتابعة في سطر واحد، لذا فإنه عندما يضغط الزر Enter ويقوم بكتابة End If سيظهر خطأ لعدم الحاجة لتلك الخاتمة.

Learn Japanese :>>> http://www.nouben.com/

#6

Oooooops...

أتقصد أخي newbie بأن الأخ السائل قام بكتابة End If بالرغم من أن المحرر قام بإدخالها تلقائياً؟؟؟؟؟؟؟ لماذا غاب عني بالي هذا الإحتمال، وهل من المعقول بأنه لم يلاحظ ذلك؟

على كل حال، أخي mohamed_k78 خذها نصيحة مني، عندما تجد بأن هناك End If وتحتيها خط أحمر وتظهر لك الرسالة End If" must be preceded by a matching "if " فقم بما يلي: أشطبها، أشطبها دون رحمة ولا ولا شفقة، وبعداً لها وللقوم الكافرين.

فعلاً البرمجة دون قاعدة If لا تساوي جناح بعوضة.

Learn Japanese :>>> http://www.nouben.com/

#7

أعتقد أن الأخ Newbie يقصد أن الاخ كتب التالي

if x>7 then msgbox x

End If

و بالطبع هذا خطأ واضح لان جملة الشرط عندما تكتب في سطر واحد لا تحتاج إلى End If

#8

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

Dim payment As Single

Dim payearly As DueDate

if chkpayearly.Checked then payearly=DueDate.BegOfPeriod else payearly=DueDate.EndOfPeriod end if

لكن هذة هية الجملة بعد فصل الجمل عدة مرات غن طريق مفتاح الأدخال مع ملاحظة أن التعرج الذي كان تحت قد زال ولكن تم وضع نقطتين بعد الكلمة Else(:) لماذا هذا.....

Dim payment As Single

Dim payearly As DueDate

If chkpayearly.Checked Then

payearly = DueDate.BegOfPeriod

Else : payearly = DueDate.EndOfPeriod

End If

بالنسبة للأخ الذي يقول أذا صدفتها أحذفها بدون تردد....هل هذا الحذف لا يؤثر على تنفيذ الجمل...وماذا لو أردت أستخدام nested ifوحدثت معي ....وهل فصلي عن طريق مفتاح Enter لايؤثر على تنفيذ الجملة ....أفيدوني في هذة النقاط بالله عليكم

#9

كله بيعتمد على الكود اللي انت كاتبه

تأكد انك تكتب syntax سليم للif statement كالذي كتبته بأعلى تماماً و لن تحدث أخطاء..

اما بالنسبة للnested if فيمكنك اعتبارها كأي جملة اخرى تظهر في الif statement

اما فصلك بزر الاخال فلن يسبب مشاكل طالما لم يشتكي الفيجوال باظهار خط متعرج

يعني الكودين التاليين يؤدون نفس الغرض تماماً

if x=1 then
	msgbox("1")
else: msgbox("2")
end if

وكذلك

if x=1 then
	msgbox("1")
else
	msgbox("2")
end if

هل انتبهت الى اني ضغطت الادخال بعد الelse مباشرة بدون مشاكل

اقتباس
الـ VB هى الأساس ... بتبرمج بيها بالاحساس

ولا سيمي كولن ولا أقواس ... وتعلمها سهل لكل الناس

راكب فيها موتور نفاث ... دي سريعه جدا وباخلاص

الـ VB هى التراث ... للذكور والايناث :D

الـ VB لغة عريقه ... حتى اسأل Anwarica

من ديوان الشاعر السي شاربي "معتز شمس"
#10
اقتباس
قد زال ولكن تم وضع نقطتين بعد الكلمة Else( لماذا هذا.....

لان النقطتين : معناهم أن الكود قبل النقطتين كأنه على سطر و بعد النقطتين كأنه على سطر أخر يعني كأنك كتبت الكود كالتالي

Dim payment As Single
Dim payearly As DueDate
If chkpayearly.Checked Then
payearly = DueDate.BegOfPeriod
Else 
payearly = DueDate.EndOfPeriod
End If
#11

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

شاكر لك جدااااااا على الرد المفيد والجميل وأسئل الله أن يجعلة في ميزان حسناتك....أخي لو سمحت ممكن أعرف يعني أية by ref و by val ... والذي دئما أرهم في الجملة والأقواس التي تليها مامعناها فيما يمكن أستخدمها أو تدلني على أى مصدر ممكن أعرف يعني أية هتين الكلمتين وكيفية أستخدامهما وعن بداية الأجراء بشكل عام....حيث أني لازلت مبتدئ في الفجيوال بيسك عامة

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

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

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

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