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

خبراء ال MFC .. ارجواا المساعدة

مغلق
بدأه king101 في 29 مايو 2005 · 9 رد · 607 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الصورة توضح المشكلة

post-28897-1117326306_thumb.jpg

عندماا يكتب المستخدم في name state مثلا "q" .. في مربع intial state يجب عليه كتابة مثلا q0 او q1 الى q9 وو اذا كتب مثلا d0 او اي حرف ثاني غيير q وو بعدة احد الارقاام بيين 0 الى 9 يظهر رسالة خطأ

المشكلة انيي ماعرفت كييف اقووم العميلة كل ما اقووم بكتابة الكوود افشل مع انيي عملت نفس الطريقة بس فقط بأستخداام integers وو نجحت الطريقة بس عندماا حاولت عمله بال String علشاان استخدم مثل q0 كمتغيير فشلت :(

ممكن احد يساعدنيي في الكوود يجب عليي انهااء البرنامج بسرعة لانه مشرووع منتصف الفصل :( :(

في الرفقاات كوود البرنامج

Project.zip

تم تعديل هذه المشاركة بواسطة king101 في 29 مايو 2005 في 03:32

#2

شوفت الكود ولكن لم أفهم شيء المره القادمه حاول تضع تعليق في أي حال في حل خلي المتغير حق الـedit text من نوع CString و بعدين سوي كذا

if (m_edit1[0] != 'd' || isdigit(m_edit1[1]) !=0)
{
	MessageBox("error");
}
//the first part of the condition checks the first char of the string to see if //it is a 'd' you might want to change this to any other char or use isalpha() //to make sure its a valid char
//isdigit checks the second char in the string to see if it is a digit
//where m_edit1 is a CString value to an edittext
#3

شكرااا اخيي v1r05 على الكوود بجربة وو بشووف اذا ضبط

انشاااء الله مرة ثانية بخليي تعلييق على ايي كوود اسوويه :)

#4

نفس الشي :( ... استخدمت الكوود بس بدوون فايدة وو بعديين غييرت شويي في الكوود بس في كل الحالات يعطيني ال messagebox

"erroe"

الكوود:

	CString a,d;


	a=GetDlgItemText(IDC_EDIT14,d);



	if (a != 'd')
{
MessageBox("error");
}


}

اعتقد الخطأ في

a=GetDlgItemText(IDC_EDIT14,d);
#5

no the error is not there it is in

if (a != 'd' )

you are trying to compare a string with possibly multiple chars with a single char

the correct way is

if ( a[0] != 'd')

also i will not force the user to choose a string that only starts with 'd' use isalpha() insted so the user can use any valid char from a..z or A..Z

#6

شكراا اخيي على المساعدة وو عن انيي استخدمت فقط d كنت ابيي فقط اجرب :)

#7

عرفت الحيين لييش الكوود مايشتغل :)

المفرووض اكتب هذا الكوود في تعريف المتغير

GetDlgItemText(IDC_EDIT14,a);

انا الغبيي منت كاتب

a=GetDlgItemText(IDC_EDIT14,a);

:D :D

#8

أسف على الازعااج .........

عنديي مشكلة ثانية ان text box مايقبل اكثر من كلمة وو عندماا اكتب الكووود يعطينيي run time error كل ما اكتب في ال text box

هذا الكووود

  CString a,state;


	GetDlgItemText(IDC_EDIT14,a);  // text box for instial state
	GetDlgItemText(IDC_EDIT40,state); // text box for state


	// if state text box = 'a' then instial state box must be a with any numbers from 0 - 9

	if (state == 'a') 
	{
  
  if (a[0] != 'a' && isdigit(a[1]) >9 ) // cheack if instial text box = a with any numbers 
 	 {
    MessageBox("error");
 	 }


	}

وييين الخطأ :( :(

#9

شوف المثال في الملف المرفق :-

و شوف هذا الموقع أيضأً

هنا

4bsd.zip

تم تعديل هذه المشاركة بواسطة v1r05 في 1 يونيو 2005 في 14:20

#10

شكرااا اخييي v1r05 على المساعدة وو اسف اذا تعبتك معاااي :)

بجربة وو بشووف انشاااء الله يصيير

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

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