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

البحث في سلسة ارقام

بدأه زكيري عبد العالي في 28 سبتمبر 2009 · 12 رد · 649 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

سؤال من جديد

ما هي احسن و اسر ع طريقة للبحث عن رقم من هذه السلسلة اي انا كن موجود او لا

مثلا الرقم 1797

نعم

17988

لا

  [color= #0000ff;]"1675, 1797, 1853, 1865, 1249, 1273, 1323, 16525, 1499, 1521, 1556, 1586 "

هل ابحث عن سلسة في سلسلة

2-احوله الى list ثم اجعل دورة البحث

....

شكرا

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 28 سبتمبر 2009 في 14:07

#2

اسرع طريقة هي بتحويله إلى List و من ثم استخدام التابع Find لها وليس عمل حلقة For each.

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#3

شكرا اخي وائل

  CBX_RevPc[color= #339933;].Checked [color= #339933;]= Txb_produits[color= #339933;].Text[color= #339933;].Contains[color= #009900;]([color= #0000ff;]"1675"[color= #009900;])[color= #339933;];

وجد Contains فما رايكم

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 28 سبتمبر 2009 في 14:18

#4

هل النص الذي يحتوي على أعداد سوف يكون ضخم؟ إذا لا Contains تفي بالغرض بشكل ممتاز, ظننت انّ لديك قيم كثيرة تريد البحث بها.

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#5

الرقم 40 كحد اقصى

اخي وائل هل توجد ما يقابل هذه التعلمة في الدلفي لاني لا اعتقدن اني رايتها سابقا

شكرا

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 28 سبتمبر 2009 في 14:23

#6

إذا كنت تقصد دلفي win32 فهناك التابع Pos function والذي يعيد موقع تواجد string في أخر, اما دلفي دوت نت فلم اعمل بها :)

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#7

اذن ف Contains =POS اذا لا تفي بالغرض اي سابحث عن سلسلة في سلسلة اي حينما يكون

 

CBX_RevPc[color= #339933;].Checked [color= #339933;]= Txb_produits[color= #339933;].Text[color= #339933;].Contains[color= #009900;]([color= #0000ff;]"167"[color= #009900;])[color= #339933;];

وتكون السلسلة

بها

1675, 1797, 1853, 1865,

اي

167 <> 1675 فهذا خطأ اكي يبدوا انه لا يوجد ما ابحث عنه ساستعمل list

#8
 

List[color= #339933;]<string[color= #339933;]> vlist [color= #339933;]=[color= #0000ff;]"1,2,3,..."[color= #339933;];

كيف شكرا

#9
  1.  
  2. string str = "1675, 1797, 1853, 1865, 1249, 1273, 1323, 16525, 1499, 1521, 1556, 1586 ";
  3. string[] s = str.Split(',');
  4. List<string> vlist = new List<string>(s.Length);
  5. vlist.AddRange(s);  
  6.  

تم تعديل هذه المشاركة بواسطة Wael Dalloul في 28 سبتمبر 2009 في 15:52

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#10

شكرا اخي وائل

في الحين فقط اخبرني صديقي و هو مبرمج جافا انها توجد Split لتقسيم السلسلة

بارك الله فيك

من الدلفي الى السي شارب في ماشاريعي اتنقل كثيرا بين اللغات الله يستر .

#11

بعد إضافة عناصر النص إلى ال List يمكنك استخدام ما يلي لمعرفة وجود عنصر ضمن السلسلة:

  1.  
  2. bool ch = vlist.Exists(delegate(string i) { return i == "16751"; });
  3.  
  4.  

او يمكنك مباشرة من مصفوفة ال string باستخدام foreach او اي Iterator

اقتباس
من الدلفي الى السي شارب في ماشاريعي اتنقل كثيرا بين اللغات الله يستر .

لا مشكلة إن شاء الله تزيد خبرتك و تصبح multilingual

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#12

حتة LINQ على السريع

var query = from s in vlist where s=="1567" select s

if (query.count() > 0) // it's exist do what you want

Formerly PYTHON

الراجل الحر .. حر و لو زمانه جار

يمشى ف طريقه .. لا يخشى الشوك ولا لحجار

#13
string[] strings = "1675, 1797, 1853, 1556,1865, 1249, 1273, 1853,1323".Split(',');
IEnumerable<string> query = strings.Where(
	delegate(string s) { 
		return s.Trim().Equals("1499"); 
	}
);
foreach(string s in query)
	MessageBox.Show(s);

مواضيع متنوعة

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