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

سؤال فني

مغلق
بدأه theAviator6699 في 9 أغسطس 2006 · 3 رد · 480 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

	CString  mystmt = "";
	mystmt = (lCol == m_nProductCol);
	mystmt += "||";
	mystmt += (lCol == m_nProductCol + 1);

	if(mystmt)
		AfxMessageBox(mystmt);

يعني ان اكون قادراً على حفظ أسماء المتغيرات في سترنج و اعادة تحويله الى متغير

يعطيكم العافية شباب

#2
theAviator6699 كتب:
السلام عليكم

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

	CString  mystmt = "";
	mystmt = (lCol == m_nProductCol);
	mystmt += "||";
	mystmt += (lCol == m_nProductCol + 1);

	if(mystmt)
		AfxMessageBox(mystmt);

يعني ان اكون قادراً على حفظ أسماء المتغيرات في سترنج و اعادة تحويله الى متغير

يعطيكم العافية شباب

لو كانت ++C لغة script او بالأصح تملك pure interpreter مثل php كان يمكن تخزين أسماء المتغيرات ومن ثم إعادة تحويلها

لكن تحديد أسماء المتغيرات تكون static اي وقت الترجمة compile-time ولأن الكمبايلر لا يعلم ما بداخل الstring فمن المستحيل تطبيق هذه الفكرة .

وأظن أن الطريقة التي إستخدمتها لا تصلح حتى في لغات Script لكن ربما يمكن فعلها خصوصاً وإن الترجمة تتم وقت النفيذ .

تم تعديل هذه المشاركة بواسطة b.m.s في 9 أغسطس 2006 في 15:56

#3

أشك إنك ممكن تحتاج لكدة فى أى وقت, أكيد فى طريقة تانية.

#4
1:   CString  mystmt = "";
2:   mystmt = (lCol == m_nProductCol);
3:	mystmt += "||";
4:	mystmt += (lCol == m_nProductCol + 1);
5:
6:	if(mystmt)
7:	   AfxMessageBox(mystmt);

السطر الآول عادي.. أوكي..

السطر 2 القيمة العائدة من التعبير lCol == m_nProductCol هي bool أي صح أو خصأ (وهذا يجب حفظه في متغير int حيث 0 flase و غير صفر true فلا يمكن تحويل int الى string.

وبخصوص الجملة 6 فمعناها حسب سي، أو سي++ هو اذا لم تكن السلسلة فارغة(ولا يعرف ماذا تحتوي السلسة من جمل برمجية).

بالعربي انت تريد (اذا فهمتك صح ) تخزين جمل برمجية داخل string وتنفيذها!!

هذا لا ينفع لأن السي ترى الجملة النصية على انها نص لا يمكن تنفيذه ولا يحوي أوامر.

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

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