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

كتابة الكود في سطر واحد

بدأه MemoIraq في 22 مايو 2011 · 7 رد · 1,103 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هل يمكن كتابة الكود في سطر واحد في VFP

كما في VB حيث في VB يفصل بين كود وكود علامة :

اي مثلا

Select Case

Case Is = 1 : LE=3

وهكذا

مع تحياتي للجميع

#2

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

نعم يمكنك ذلك اما باستخدام الدالة IIF أو ICase

على النحو التالي :

x=100

IIF

? IIF(x=50, "Result : 50", "Result : 100")

ICASE

? ICASE(x=50, "result 1 : 50", x=75, "result 2 : 75", x=100, "result 3 : 100", "OTHERWISE UNKNOWN")

وربما تفيدك الدالة INLIST

للتحقق من أن القيمة موجودة ضمن عدة قيم محددة

?INLIST(x , 50, 100, 150).............Result = .T.

مع التحية

أستغفر الله العظيم و أتوب إليه

#3

ماشاء الله عليك اخي العزيز

ما كنت اعلم ان VFP يحتوي على مثل هذه الدوال

واشكرك من كل قلبي واطال الله عمرك وزاد من حسناتك

#4

السلام عليكم

اخي العزيز "Shadowz" جربت هذه الكودات ولكن لم يعطي نتيجة حيث لايعطي قيمة لل X3

post-244913-063109300 1306187809_thumb.j

واذا اردت ان استدعي اجراء كيف

post-244913-014847100 1306187818_thumb.j

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

المرفقات
Untitled.jpgUntitled2.jpg
#5

- بالنسبة للجزء الأول X1 هي الحالة أو الشرط وX3 متغير يتم تخزين النتيجة فيه

CLEAR
X1=3
X3=""
X3 = ICASE(X1= 1 , "ONE", X1=2, "TWO", X1=3, "THREE")
?X3

- اذا كانت الاجراءات مرتبة فعليا حسب الاسم وبتسلسل معين كما في المثال تستطيع استدعائها على النحو التالي، بعد تحديد قيمة X1 طبعا

DO "PROCEDURE"+TRANSFORM(X1)

- بالنسبة للجزء الثاني

cRunMe = ""
cRunMe = ICASE(X1=1, "Procedure1", X1=2, "Procedure2", "Procedure3")
IF NOT EMPTY(cRunMe)
	DO &cRunMe
ENDIF

PROCEDURE procedure1
	MESSAGEBOX("procedure 1")
PROCEDURE procedure2
	MESSAGEBOX("procedure 2")
PROCEDURE procedure3
	MESSAGEBOX("procedure 3")

بالنسبة لي أفضل استخدام ICASE في الحالات التي تتطلب تحديد قيمة متغير ما أو ما شابه الجزء الأول من سؤالك

أما في حالة استدعاء اجراء أو دالة كالجزء الثاني

أفضل استخدام الطريقة التقليدية على النحو التالي

DO CASE
	CASE X1=1
		DO procedure1
	CASE x1=2
		DO procedure2
	CASE X1=3
		DO procedure3
ENDCASE

PROCEDURE procedure1
	MESSAGEBOX("procedure 1")
PROCEDURE procedure2
	MESSAGEBOX("procedure 2")
PROCEDURE procedure3
	MESSAGEBOX("procedure 3")

مع التحية

أستغفر الله العظيم و أتوب إليه

#6

اشكرك اخي العزيز والاستاذ الكبير Shadowz

وارجو من الله يزيدك علما ومعرفة

وان تضل دائما مثالا يقتدى به في طلب العلم ونشره للاخرين

واعتذر على التاخر بسبب بعض الاعمال

ولك مني كل الاحترام والتقدير

اخوك مصطفى

#7
MemoIraq كتب:

اشكرك اخي العزيز والاستاذ الكبير Shadowz

وارجو من الله يزيدك علما ومعرفة

وان تضل دائما مثالا يقتدى به في طلب العلم ونشره للاخرين

واعتذر على التاخر بسبب بعض الاعمال

ولك مني كل الاحترام والتقدير

اخوك مصطفى

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

نحن اخوة ان شاء الله، لا داعي لاستاذ ولا داعي لكبير

خلي الأمور على البركة :D

مع التحية

أستغفر الله العظيم و أتوب إليه

#8

thaaaaaaaaaaaaaaaaaaaanks

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