PDA

View Full Version : پاک کردن یک کاراکتر خاص از textbox



#Faranak
یک شنبه 19 اردیبهشت 1389, 21:25 عصر
سلام
بچه ها چه طور می تونم در کلیک باتن یک کاراکترخاص مثلا%رادرکل text یک text box جستجو کنم واگر پیداشد آن را حذف کنم؟خودم به این صورت نوشتم اما اتفاق خاصی نم افتد:



for (int i = 0; i < textBox1.Text.Length - 1; i++)
{
if (textBox1.Text == "%")
{
textBox1.Text.Remove(i);
}
}

mohsensaghafi
یک شنبه 19 اردیبهشت 1389, 22:47 عصر
if (textBox1.Text == "%")
در اینجا باید اون کاراکتر رو انتخاب کنی. شما داری کل رشته رو با % مقایشه می کنی.
باید دقیقا همون کاراکتر رو جدا کنی و مقایشه کنی. همون کاری که واسه remove داری انجام می دی.
چک کن!

alireza_s_84
یک شنبه 19 اردیبهشت 1389, 22:48 عصر
سلام دوست من اینجوری عمل کن:
textBox1.Text.Replace("%", "");

#Faranak
یک شنبه 19 اردیبهشت 1389, 23:28 عصر
سلام دوست من اینجوری عمل کن:
textBox1.Text.Replace("%", "");

این کارو انجام دادم ولی هیچ اتفاق خاصی نیفتاد.

alireza_s_84
یک شنبه 19 اردیبهشت 1389, 23:47 عصر
این کارو انجام دادم ولی هیچ اتفاق خاصی نیفتاد.

خوب کد رو بذار اینجا تا بهت بگم به احتمال زیاد این رو به مقدار textbox ست نکردی دوباره فقط replace کردی

#Faranak
دوشنبه 20 اردیبهشت 1389, 00:03 صبح
خوب کد رو بذار اینجا تا بهت بگم به احتمال زیاد این رو به مقدار textbox ست نکردی دوباره فقط replace کردی




private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < textBox1.Text.Length - 1; i++)
{
textBox1.Text.Replace("%", " ");
}



البته یک بار هم بدون حلقه ی for نوشتم.

alireza_s_84
دوشنبه 20 اردیبهشت 1389, 00:13 صبح
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < textBox1.Text.Length - 1; i++)
{
textBox1.Text.Replace("%", " ");
}



البته یک بار هم بدون حلقه ی for نوشتم.
دوست من اولا نیازی به حلقه نیست ثانیا :
اینجوری نه:

textBox1.Text.Replace("%", " ");
اینجوری بنویس:

textBox1.Text.Replace("%", "");
ثالثا: میخوای وقتی Replace کردی چیکارش کنی ادوباره تو خود تکست باکس نشون بدی یه جایی ذخیره کنی.
اینجوری میشه:

textBox1.Text=textBox1.Text.Replace("%", "");

#Faranak
دوشنبه 20 اردیبهشت 1389, 00:49 صبح
دوست من اولا نیازی به حلقه نیست ثانیا :
اینجوری نه:

textBox1.Text.Replace("%", " ");
اینجوری بنویس:

textBox1.Text.Replace("%", "");
ثالثا: میخوای وقتی Replace کردی چیکارش کنی ادوباره تو خود تکست باکس نشون بدی یه جایی ذخیره کنی.
اینجوری میشه:

textBox1.Text=textBox1.Text.Replace("%", "");

ممنون از راهنماییتون:قلب:
آیا اگر بخواهیم فقط یک کاراکتر خاص رو فقط جستجو کنیم وreplaceنکنیم هم تابعی وجود دارد؟

battak
دوشنبه 20 اردیبهشت 1389, 00:58 صبح
آیا اگر بخواهیم فقط یک کاراکتر خاص رو فقط جستجو کنیم وreplaceنکنیم هم تابعی وجود دارد؟
بله:
if (textBox1.Text.IndexOf("%") != -1)
{ }

Salar Ashgi
دوشنبه 20 اردیبهشت 1389, 10:06 صبح
این برای پاک کردن (با حلقه) :



string str = "";
for (int i = 0; i < textBox1.Text.Length; i++)
{
if (textBox1.Text[i] != '%')
str += textBox1.Text[i].ToString();
}


برای جستجو هم میتونید از کد بالا استفاده کنید ، چون textBox1.text خودش یه رشته است و رشته

هم که آرایه ای است از کاراکترها ، پس براحتی میشه آرایه وار باهاش برخورد کرد و به کاراکترهاش

دسترسی داشت .

alireza_s_84
دوشنبه 20 اردیبهشت 1389, 10:12 صبح
وقتی با متد Replace میشه براحتی و سریع کارکترهامون رو جایگزین کنیم چرا باید از حلقه استفاده کنیم؟؟؟

str += textBox1.Text[i].ToString();
این کد چند ایراد داره اولا اینکه یه حلقه داره که سرعت رو میاره پایین ، دوما هربار که میخواد به str یک کارکتر اضافه کنه دوباره رشته رو میسازه و سوما جستجوی درون یک رشته با IndexOf صورت میگیره و اگر کسی خوب بلد باشه باهاش کار کنه هیچوقت نیازی به استفاده از حلقه نیست.

mohsensaghafi
دوشنبه 20 اردیبهشت 1389, 11:51 صبح
سلام خدمت دوست عزیز جناب علیرضا خان
راه حل شما کاملا بهینه و درست است و هیچ نیازی هم به حلقه نیست، اما بعضی وقتها لازمه که راه های طولانی تر و شاید غیر بهینه رو امتحان کنیم.
دوستمون با حلقه نوشته بودن. ما هم با حلقه براشون اصلاح کردیم. بعضی وقتها این راه های طولانی تر جنبه آموزشی داره.
بهر حال از راهنمایی ارزندتون ممنون هستیم.

Salar Ashgi
دوشنبه 20 اردیبهشت 1389, 12:56 عصر
وقتی با متد Replace میشه براحتی و سریع کارکترهامون رو جایگزین کنیم چرا باید از حلقه استفاده کنیم؟؟؟



کسی هم منکر این نیست که این روش نسبت به حلقه ساده تر و بهینه تر است ، هدف ارائه راه حلی

دیگر بود ، مطمئنا روش که یکی نیست ، بهتره آدم خودشو همیشه عادت نده به راحتترین روش و یه

آشنایی با سایر روشها هم داشته باشه ، صحبت شما بیشتر در حیطه طراحی الگوریتم مطرح میشه

که بحث بهینگی کد و الگوریتم مهم و حیاتی است ، نه اینجا که هدف ارائه راه حل است !