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

سؤال مهم جدا ياعشاق البرمجه......

مغلق
بدأه sweety34 في 21 ديسمبر 2006 · 7 رد · 591 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي سؤال مهم جداعندما اكتب برنامج باستخدام الام اف سي اذا اردت ان اطبع متغيرات على البوكس وجدت الداله التي تقوم بذلك لكنها لا تطبع الا متغير من انواع معينه ومنها CString فما الحل ان كان لدي متغيرات من نوع string واريد طباعتها حاولت مرارا في تحويلها الى النوع CString

عن طريق الـــ cast او طرق اخرى فلم استطع فهل اجد لديكم حلا واكون لكم ممتنه......

الموضوع مهم جدا بالنسبه لي..

الداله المستخدمه:-

CString szResultat; // متغير يوضع فيه النص وعدد حروفه
int nLongueur = m_testEdit.LineLength();// تهيئة متغير رقمي بعدد حروف النص
m_testEdit.GetWindowText( szEdit );// استرجاع النص ووضعه في المتغير szEdit
szResultat.Format( "%s يحتوي على %d حروف ",szEdit,nLongueur);
AfxMessageBox( szResultat);
#2

السلام عليكم

هل تقصد

//Sol 1
	CString szResultat;
	CString res;

	int nLongueur = m_testEdit.LineLength();
	m_testEdit.GetWindowText(res);
	nLongueur =res.GetLength();
	szResultat.Format( "EditBox %s which has %d char",szEdit,nLongueur);
	AfxMessageBox( szResultat);	

// Sol 2
	CString szResultat;
	char szEdit[255];
	int nLongueur = m_testEdit.LineLength();
	m_testEdit.GetWindowText( szEdit,255 );
		szResultat.Format( "EditBox %s which has %d char",szEdit,nLongueur);
	AfxMessageBox( szResultat);
#3

نعم هذا اللي اقصده انا ابغى اطبع متغيرات معرفه عندي كــstring لكن الفنكشن اللي فوق هذي ماتقبل الا CString

فكيف اطبع الـstring على الشاشه؟

وهل فيه طريقه غير هذي عشان اعرض معلومات عندي على الشاشه؟؟؟

رجاااااااء اتمنى اجد الرد عاجلا لان البروجكت موقف عند حد معين وماني قادره اكمل قبل مااتم الخطوه هذي...

وكل الشكر لكم.......

#4

سلام عليكم

اخى .. حتى نستطيع الاجابة وضح اكثر ماهو string و ما هى شاشة الطباعة

على العموم انظر الكود قد يفيد

و السلام

// TestAtarb.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "TestAtarb.h"

 #include <string>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	// initialize MFC and print and error on failure
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		// TODO: change error code to suit your needs
		cerr << _T("Fatal Error: MFC initialization failed") << endl;
		exit(1);
	}

	string str( "Message from string" );
	AfxMessageBox( str.data());

	CString cstr(str.data());  // Option 1
	cstr = str.data ();		   // Option 2
	AfxMessageBox( cstr + " .... Now is MFC");



	return 0;
}
#5

شكرا جزيلا لاهتمامك نعم قد يكون هذا فعلا ماأريده لكن ليسعني حلمك..

string str( "Message from string" );
	AfxMessageBox( str.data());

	CString cstr(str.data());  // Option 1
	cstr = str.data ();		   // Option 2
	AfxMessageBox( cstr + " .... Now is MFC");

في الـOption 2 ماهي السي هل هي للتحويل من التايب تبع الكلاس سترنق الى الـCString

.data ();

وايضا ماهي

وطمعا في كرمك هل يمكن شرح الكود اعلاه؟؟؟؟؟؟

#6

سلام عليكم

نتفق فى البداية ان الفئة (class) هو تغليف للبيانات مع توفير قليل (أو كثير) من الدوال للتعامل مع هذه البيانات.

فى حالة string و CString يتم التعامل مع حروف (* char ) على انها البيانات. و الفئتين بهما دالتين مفيدتين

1- معالج لعملية التخصيص (=) يسمح بالاتى ;* sting = char و كذلك ;* CSting = char و هما يقومان بعمل strcpy

و بالتالى تصبح المشكلة فى ايجاد (* char ) الذى يحتوى على البيانات

2- توجد فى كل فئة طريقة لإيجاد (* char ) وهم ;()string.data و ;(0)CString.GetBuffer

و الصفر هو رقم الحرف فى مصوفة الحروف. و طبعاً 0 يعنى كل النص.

اتمنى ان يكون هذا ما تريد

ملحوظة: استخدام cast لن يكون مجدى لأن الفئتين لا ينتميان لنفس الفئة(مافيش بينهم نسب :D ).

سلام عليكم

يوجد متغيرين

string str

CString cstr

يعنى c مجرد تغير فى الاسم للتميز بين النوعيين

#7

شكرا كل الشكر على تعاونك وجزاك الله خيرا.....

فعلا لقد انحلت المشكله والفضل يعود لك بعد الله.....

لاعدمناتعاونك الكريم........

مرة اخرى شكرا لك....

#8

شكراً على الرد الجميل و اطيب التمنيات بالتوفيق

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…