PDA

View Full Version : سوال: جستجو برای پیدا کردن کلمات خاص در بین رشته؟



پیام حیاتی
شنبه 27 تیر 1394, 12:58 عصر
سلام
فرض کنید جمله زیر را در یک TextBox توسط کاربر وارد شده است :
This is My Computer.It's Very Old.
حال می خواهیم با کلیک بر روی دکمه در بین رشته جستجو کنیم ببینیم کلمات Computer و Old وارد شده اند یا خیر.
به چه شکل باید این کار رو انجام بدیم؟
تشکر.

rg_BlackRose
شنبه 27 تیر 1394, 14:24 عصر
سلام

اگر از تکست باکس استفاده میکنید، میتونید از کد زیر استفاده کنید

string text = textBox1.Text.ToUpper();

int i = text.IndexOf(textBox2.Text.ToUpper());

if(i >= 0)
MessageBox.Show(string.Format("Text Find in {0} to {1}", i, i+textBox2.TextLength));


ولی ریچ تکست باکس امکانات بیشتری در اختیارتون قرار میده، میتونید متن مورد نظرتون رو رنگی کنید و یا رنگ زمینه متن مورد نظر رو رنگی کنید و ...

تابع جستجو:

public int FindMyText(string txtToSearch, int searchStart, int searchEnd)
{
int indexOfSearchText = 0;

// Unselect the previously searched string
if (searchStart > 0 && searchEnd > 0 && indexOfSearchText >= 0)
{
richTextBox1.Undo();
}


// Set the return value to -1 by default.
int retVal = -1;


// A valid starting index should be specified.
// if indexOfSearchText = -1, the end of search
if (searchStart >= 0 && indexOfSearchText >= 0)
{
// A valid ending index
if (searchEnd > searchStart || searchEnd == -1)
{
// Find the position of search string in RichTextBox
indexOfSearchText = richTextBox1.Find(txtToSearch, searchStart, searchEnd, RichTextBoxFinds.None);
// Determine whether the text was found in richTextBox1.
if (indexOfSearchText != -1)
{
// Return the index to the specified search text.
retVal = indexOfSearchText;
}
}
}
return retVal;
}


برای جستجو هم از کد زیر استفاده کنید

int i = FindMyText(textBox3.Text, 0, richTextBox1.TextLength);
MessageBox.Show(string.Format("Text Find in {0} to {1}", i, i+textBox3.TextLength));



نمونه برنامه با دات نت 3.5 نوشته شده

133360

موفق باشید