PDA

View Full Version : چگونه می توان درlistBox سطری رو که حاوی کلمه مورد نظر ما هست انتخاب کرد؟



momomomo
جمعه 19 فروردین 1390, 23:29 عصر
با سلام می خواستم بدونم چطوری میشه در یه لیست باکسی که تعداد زیادی سطر داره یه کلمه رو پیدا کرد بعد به سطر مورد نظر رفت و اون سطر رو داخل یه تکست باکس نشون داد ؟

shahab_software
شنبه 20 فروردین 1390, 00:19 صبح
سلام. برای این کار شما می تونید از حلقه ها، دستورات linq و... استفاده کنید. راستی توی لیست شما داده های تکراری هم هست؟
نیاز هم نیست به داده مورد نظر توی لیست برید و آن را نشون بدید فقط توی لیست بگردید ببینید داده مورد نظر وجود داره؟ اگر بود همان را به تکست باکس بفرستید.
اگر متوجه نشدید بفرمایید با چه روشی مد نظر شماست تا کدش رو بزارم.

momomomo
شنبه 20 فروردین 1390, 00:44 صبح
با تشکر از توجه شما دوست لست باکس من حاوی یک کد html هست حالا من می خوام مقادیر یک آرایه رو ازش بیرون بکشم ولی سطری که این آرایه هست مشخص نیست می خوام اسم این آرایه رو جستجو کنم و بعد اون سطر رو به یه متغییر منتقل کنم و ازش استفاده کنم

shahab_software
شنبه 20 فروردین 1390, 01:04 صبح
شرمنده من متوجه نحوه کارکرد برنامه شما نشدم!! شما چندین عنصر (داده) توی لیست باکس دارید (حالا می خواد هر چیزی باشه) و می خواید توی تمام آنها جستجو کنید. درسته؟ یعنی یه عنصر بعنوان ورودی دارید و توی لیست دنبالش می گردید.
اگر ممکنه یه نمونه برنامه بزارید یا بیشتر توضیح بدید.

momomomo
شنبه 20 فروردین 1390, 01:19 صبح
ببین دوست من من می خوام در این لیست باکس جستجو کنم مثلا کلمه ali رو و فرضا این کلمه در سطر 10 وجود داره حالا می خوام برنامه سطر 10 رو برداره ببره داخل یه تکست باکس نشون بده

shahab_software
شنبه 20 فروردین 1390, 01:29 صبح
خب این هم یه مثال ساده با حلقه for



for (int coun = 0; coun < listBox1.Items.Count; coun++)
{
if (textBox1.Text == listBox1.Items[coun].ToString())
{
textBox2.Text = listBox1.Items[coun].ToString();
break;
}
}

شما می تونید این کار را با روش های متفاوتی انجام بدید. بستگی به نحوه عملکرد برنامتون داره.

shahab_software
شنبه 20 فروردین 1390, 01:31 صبح
البته این داده ای که جستجو کردید را انتخاب می کنه و توی تکست باکس دوم نشون می ده اگر فقط شماره سطر را می خوای می تونید از coun استفاده کنی

momomomo
شنبه 20 فروردین 1390, 01:48 صبح
این کد کار نکرد و رشته مورد نظر رو نشون نداد:افسرده:

shahab_software
شنبه 20 فروردین 1390, 01:54 صبح
کدی که استفاده کردید چی بود؟ می شه اینجا بزارید. البته توجه کنید که من کدی که گذاشته بودم رو ویرایش کردم! باید دستور break هم توی if باشه.

momomomo
شنبه 20 فروردین 1390, 02:13 صبح
دوست گرامی کدی که شما قرار دادی تکس بکس 1 رو با اون سطر مقایسه می کنه که هر کز درست در نمیاد چون ما دنبال یک کلمه هستیم نه یک سطر فکر می کنم برا همین چیزی تو تکست دو نشون نداد شاید من نتونستم درست توضیح بدم ببینید دوست من
ers gfhghj jkk kk
moihamad
homan
hane
ali ahmade
tosan
من می خوام شماره سطری که کلمه ali هست رو مشخص کنم

shahab_software
شنبه 20 فروردین 1390, 02:34 صبح
خب پس شما دنبال یک کلمه توی لیست می گردید نه یک عنصر توی لیست. حالا شرایط کلمات توی هر عنصر چطورین؟ یعنی اگر داشته باشی 121aa11 و دنبال aa بگردیم داده توی اون کلمه هم حساب می شه؟ یا باید جدا از هم باشه؟
اگر شرایط خاصی دارید می تونید یه متد جستجو با شرایط خودتون بنویسید در غیر این صورت می تونید از متدهای آماده خود string استفاده کنید.

shahab_software
شنبه 20 فروردین 1390, 02:55 صبح
هدف شما از نوشتن این برنامه چیه؟ می خواید عملکرد یک کامپایلر رو شبیه سازی کنید؟
اگر می خواید توی هر عنصر بگردید همان طور که گفتم باید هر عنصر از لیست رو در نظر بگیرید و توی آن داده مورد نظر را جستجو کنید (با توجه با شرایط مورد نظر). حالا اگر چسبیده باشه هم قابل قبوله بعنوان مثال می تونید از متد IndexOf رشته استفاده کنید. این متد شماره اندیس شروع داده توی عنصر لیست رو نشون می ده. مثل کد زیر:


for (int coun = 0; coun <= listBox1.Items.Count; coun++)
{
if(listBox1.Items[coun].ToString().IndexOf(textBox1.Text) > -1)
{
textBox2.Text = textBox1.Text;
break;
}
}

البته باز هم می گم بستگی به شرایط تعریف شده برای کارکرد برنامتون داره. توی این کد اگر داده ای که می گردید توی یکی از عنصرهای لیست باشه، آن را به تکست باکس دو می ده و از حلقه خارج می شه.

momomomo
شنبه 20 فروردین 1390, 02:59 صبح
ببین دوست من سطر مورد نظر من اینطوریه
BlogComments=[166,0,165,0,164,0,163,0,162,0,161,0,160,0,159,0,15 8,0,157,0,156,0,155,0,154,0,153,0144,0,143,0,142,0 ,141,0,140,0,139,0,138,0,137,0];
حالا می خوام در بین حدود 800 سطر این کلمه BlogComments رو پیدا کنه و بعد شماره سطر رو بهم بده تا بتونم بالاترین مقدار این آرایه رو در بیارم شماره سطر رو چطور پیدا کنم منظور سطری که این کلمه توشه؟

shahab_software
شنبه 20 فروردین 1390, 03:12 صبح
خب با توجه به کدی آخری که نوشتم می تونید دنبال BlogComments بگردید. هر عنصری هم که توش BlogComments باشه مقدار IndexOf اش بالاتر از -1 می شه. برای بدست آوردن شماره سطر هم می تونید از coun استفاده کنید.

shahab_software
شنبه 20 فروردین 1390, 03:22 صبح
این هم یه نمونه برنامه ساده:

68471

این برنامه شماره سطر را بر می گردونه

momomomo
شنبه 20 فروردین 1390, 03:28 صبح
دوست من واقعا ممنون هستم از لطف شما کارم راه افتاد تو کتابا نمی دونم چرا این موارد توضیح داده نشده شما از چه منابعی برای مطالعه استفاده می کنید

shahab_software
شنبه 20 فروردین 1390, 03:32 صبح
توی اکثر کتابا متدهای string نوشته شده. اگر اشتباه نکنم توی مرجع سی شارپ از مهندس مهرداد توانا خونده بودمش.