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

هل من الممكن شرح لهذه الدالة ؟؟

مغلق
بدأه ماجددج في 25 أكتوبر 2007 · 4 رد · 836 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف حالكم يا اخوان ان شاء الله بخير ..

عندي مشكلة بسيطة يا أخوان وهي اني طلبت من احد الاخوان تصميم دالة لحساب عدد الكلمات في نص معين ..بمعني أني اريد ان اعرض من مربع نص أول 30 كلمة مثلاً ..

اعطاني الدالة والنتائج 100% ولكن للأسف لم افهم الكود :( ..

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

protected string GetString(string MyStr)
	{

		string[] s;
		s = MyStr.Split(' ');
		string output = "";

		int counter = 0;
		foreach (string subS in s)
		{
			output += " " + subS;
			if (++counter >= 30)
			   break;

		}
		return output;
	}

دمتم في حفظ الله أجمعين ...

تم تعديل هذه المشاركة بواسطة ماجددج في 25 أكتوبر 2007 في 12:45

#2
protected string GetString(string MyStr)
	 {// example MyStr is "ali and sami gone are playing together ....."

	   // reserve a string array
		 string[] s;
	   //split the input string in many single words using the charactere as separator
		 s = MyStr.Split(' ');
	   // Now s is populated by the sigle worlds forming the input string 

	   // Let's declare an empty string in which we will build the new string containing only 30 strings
		string output = "";

		 int counter = 0;
		 foreach (string subS in s)
		 {
		   // put evry string from from input text to the reserved string 
			 output += " " + subS;
// increase the counter of words and check if it is greater than 30 or no
			 if (++counter >= 30)
				break;

		 }
// return your concatenated outputed string
		 return output; 
	 }
#4

سلمكم ربي أخواني جميعاً ..

أخوي واستاذنا الكبير Ben_Laiid .. جزاك الله خير على المساعدة يالغالي ..

ووالله حاولت كثيراً وبالاستعانه بـ مترجم الوافي الذهبي .. ولكن للأسف دون جدوى :( ..

لو تكرمت يالغالي لو يكون الشرح باللغة العربية ..

وفقك الله لكل خير ..

#5

اخى الفاضل

الموضوع ان كلاس string فيه ميثود اسمها سبليت دى بتقسم السترينج ده وترجعلنا الاقسام بتاعته فى ارراى اوف سترينج وبتاخد الحرف اللى هتقسم السترينج على اساسه يعنى مثلا انا عندى جمله كبيره فيها كلام كتير ايه اللى هيخلينى افهم ان دى كلمه ودى كلمه اكيد السبيس (المسافه) اللى بين كل كلمه والتانيه فالميثود بتعمل كده فى الحاله دى احنا اديناها الكونديشن اللى هنقسم على اساسه السترينج ده

string[] s; دا الارراى اللى هنحط فيه كل الكلمات

s = MyStr.Split(' '); وهنا بننده الميثود اللى هتقسم الاسترينج ولاحظ اننا هنا بنديها فى البرامتر بتاعها الكوندشين بتاعنا اللى هوه المسافه

********************************************************

كده الارراى ده اتملى بالكمات اللى موجوده فى السترينج الاساسى يبقى هنا برضه ممكن اعرف عندى كام كلمه ازاى؟ اكيد باللنث بتاع الارراى

المهم

int counter = 0; دا الاندكس اللى هنبتدى منه فى شغلنا على الارراى يعنى احنا مثلا عاوزين اول تلاتين كلمه من الجمله بتاعتنا يبقى اللنث هيبتدى من الصفر لغايه 29

foreach (string subS in s) هنا هنبتدى نعمل لوب على الارراى

{

output += " " + subS; هناخد الكلمات ونلزقهم جمب بعض ونخللى مسافه بين كل كلمه والتانيه

if (++counter >= 30) ونزود الكونت ولما يوصل لتلاتين هنطلع بره اللوب ونرجع السترينج الجديد اللى فيه التلاتين كلمه اللى احنا عاوزينهم

break;

}

return output;

******************************************************

وفيه حل تانى للموضوع ده اسهل شويه من اللى فات وفيه كود اقل دى ميثود بتعمل نفس الشغلد

private string CutWords(string Word, int WordCount)

{

string[] s;

char[] ch=new char[]{' '};

s = Word.Split(ch, WordCount);

return string.Join(" ",s );

}

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

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