PDA

View Full Version : سوال: گشتن رشته



behnam.m
جمعه 16 اردیبهشت 1390, 11:49 صبح
سلام
من برنامه notepad ویندوز ساختم . لطفا راهنمایی کنید من با کدام تابعه یا الگوریتمی می تونم رشته مورد نظرم را پایین به بالا سرچ کنم ؟(مثل fine نوت پد)
ممنون میشم کمکم کنید...

exlord
جمعه 16 اردیبهشت 1390, 12:23 عصر
public static void Find(string text, bool matchCase, RichTextBox rtb)
{
try
{
int startPos;
StringComparison type = (matchCase == true ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase);
startPos = rtb.Text.IndexOf(text, type);

if (!(startPos > 0))
{
MessageBox.Show("Search text: '" + text + "' could not be found", "Text Not Found", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
else
{
rtb.Select(startPos, text.Length);
rtb.ScrollToCaret();
rtb.Focus();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Search Error");
}
}

Farshid007
جمعه 16 اردیبهشت 1390, 13:25 عصر
چرا از این راه نمیشه:
if (textBox1.Text.Contains("For Example:Salam"))
{

MessageBox.Show("Yes There is Salam");

}
else
{


MessageBox.Show("No There isn't salam");

}

exlord
جمعه 16 اردیبهشت 1390, 14:00 عصر
چرا از این راه نمیشه:
if (textBox1.Text.Contains("For Example:Salam"))
MessageBox.Show("Yes There is Salam");
else
MessageBox.Show("No There isn't salam");

تو این روش
"Salam" != "salam" ... اگه case حروف رو در نظر نگیرین ... بله چندان فرقی نمیکنه تو پیدا کردنش ولی در این حالت محل تکست مشخص نیست و انتخاب هم نمیشه کرد ...

Farshid007
جمعه 16 اردیبهشت 1390, 16:25 عصر
Case حروف درسته نمیشه ولی Selectکردن تکست مورد نظر که میشه!
مثلا
string S="salam";
if (textBox1.Text.Contains(S))
{
int i = textBox1.Text.LastIndexOf(S);
textBox1.Select(i, S.Length);
textBox1.Focus();


}

Farshid007
جمعه 16 اردیبهشت 1390, 16:27 عصر
در ضمن برای Case حروف هم lمی تونیم این کارو کنیم:
البته کد هام خنده داره ولی جواب می ده!
string S="salam";
if (textBox1.Text.ToLower().Contains((S.ToLower())))
{
int i = textBox1.Text.ToLower().LastIndexOf(S.ToLower());
textBox1.Select(i, S.Length);
textBox1.Focus();


}

Farshid007
جمعه 16 اردیبهشت 1390, 16:31 عصر
تنها مشکلش اینه که مثلا اگه 2تاSalamداشته باشیم این فقط یکی شو می تونه پیدا و selectکنه!

Farshid007
جمعه 16 اردیبهشت 1390, 16:36 عصر
توهین به کد هاتون نشه ولی مثل اینکه درست حسابی کار نمی کنه!