PDA

View Full Version : مشکل حذف کردن کاراکتر مورد نظر از TextBox



tarsim
یک شنبه 19 آذر 1391, 23:41 عصر
سلام به همه یک مشکل دارم و اونم اینه که میخوام کاراکتر مورد نظرم رو در تکست باکس حذف کنم اما نمید ونم. با کد زیر میشه کل کاراکتر های تکست را حذف یا جایگزینی کرد مثلا در تکست مان کاراکتر salam تایپ شد کد زیر تمام a را با کارکتر خالی جایگزینی میکنه.


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


اما من اینو نمیخوام من میخوام مثلا فقط کارکتر 4 رومی از سمت چپ حذف یا جاگزین به شه با کاراکتر دلخواه خودم لطفا کمکم کنید

cccccccccc
دوشنبه 20 آذر 1391, 00:18 صبح
سلام


string str="salam";
int index_c=str.IndexOf("a");
string str2 = str.Substring(0, index_c) + str.Substring(index_c+1,str.Length-index_c-1);
MessageBox.Show(str2);//"slam"

em_developer
دوشنبه 20 آذر 1391, 00:30 صبح
سلام به همه یک مشکل دارم و اونم اینه که میخوام کاراکتر مورد نظرم رو در تکست باکس حذف کنم اما نمید ونم. با کد زیر میشه کل کاراکتر های تکست را حذف یا جایگزینی کرد مثلا در تکست مان کاراکتر salam تایپ شد کد زیر تمام a را با کارکتر خالی جایگزینی میکنه.


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


اما من اینو نمیخوام من میخوام مثلا فقط کارکتر 4 رومی از سمت چپ حذف یا جاگزین به شه با کاراکتر دلخواه خودم لطفا کمکم کنید

متن TextBox خود را در یک متغیر String منتقل کنید در آن جستجو و تغییرات خود را اعمال کرده و بعد دوباره در TextBox منتقل کنید

tarsim
دوشنبه 20 آذر 1391, 21:48 عصر
سلام


string str="salam";
int index_c=str.IndexOf("a");
string str2 = str.Substring(0, index_c) + str.Substring(index_c+1,str.Length-index_c-1);
MessageBox.Show(str2);//"slam"


سلام ممنون اما مشکل من این نیست من بالا توضیح دادم بزارید بهتر توضیح بدم . مشکل من تاریخ کلاس پرشین کلندر تاریخ رو اینطوری نشون میده 1391/9/7 که کار بر وقتی میخواد خودش تاریخ وارد کنه میخوام با ماسک تکست باکس
به صورت 0000/00/00 وارد کنه . که خب من برنامم طوریه که تاریخ روز سیستم رو میگیره و همون رو در بانک میریزه مثل این 1391/9/7 مشکل من اینجاست که وقتی کاربر خودش میخواد در بانک بر اساس تاریخ جستجو کنه باید بر روال ماسک
تست باکسی که بالا گذاشتم تاریخش رو وارد کنه که خب اینطوری نمیشه که وارد کنه یعنی میشه 1391/09/07 . من میتونستم خیلی عادی بدون ماسک تکست باکس کاربر خودش تاریخ رو وارد کنه که خوب اینطوری مجبور میشه خودش / تاریخ هم وارد کنه که ای بده جالب نیست. من فکری که از این مشکل کردم اینه که کاربر بیاد 1390/09/07 وارد کنه خودم توی کد نویسی بگم که صفر های پشت 9 و 7 رو برداره . من اگر ماسک تکست باکس رو اینطوری قرار بدم میشه 0000/00/00
بعد کار بر مجور میشه 1391 رو که وارد کرد برای وارد کردن ماه اگر مثلا ماه 9 است 09 وارد کنه و روز هم 07 وارد کنه خب تا اینجا کاربر این رو وارد کرده 1390/09/07 که در بانک ثبت میشه. مشکل من اینجاست که خود پرشین کلندر 1390/9/7 میزنه یعنی 0 قبل 9 و 0 قبل 7 رو نمیزاره. من خودم میخوام با کد نویسی 0 های قبل 9 و 7 رو بردارم. یه کد باشه که بیاد توی تکستم که مثلا 10 کاراکتر مثل همین تاریخ توش باشه بیاد کاراکتر شماره 6 و شماره 9 رو حذف کنه . کدی که شما بالا دادید فقط مخصوص یک کلمه خاص هست که برای کار من نیست. امیدوارم منظورم رو خوب متوجه شما کرده باشم.مرسی منتظر جواب شما میمونم.

ali_habibi1384
دوشنبه 20 آذر 1391, 21:56 عصر
چيزي رو كه ميخوايد آماده هست با كلي امكانات ديگه توي ابزار تكست باكسم گذاشتم. ميتونيد از امضام اونو دانلود كنيد.
فكر ميكنم گزينه TypeDate رو True كنيد توي ابزارم همه مشكلتون حل ميشه.

tarsim
دوشنبه 20 آذر 1391, 22:17 عصر
چيزي رو كه ميخوايد آماده هست با كلي امكانات ديگه توي ابزار تكست باكسم گذاشتم. ميتونيد از امضام اونو دانلود كنيد.
فكر ميكنم گزينه TypeDate رو True كنيد توي ابزارم همه مشكلتون حل ميشه.
ممنون دانلودش کردم جالب بود . اما من مخوام مشکلم رو بتونم با کد نویسی حل کنم بیشتر میخوام یاد بگیرم . لطفا اگر کسی میدونه بگه . خیلی ممنون . منتظرم

cccccccccc
دوشنبه 20 آذر 1391, 22:19 عصر
کدی که شما بالا دادید فقط مخصوص یک کلمه خاص هست که برای کار من نیست.

سلام دوست عزیز اون تنها یک مثال بود البته با توجه به سوال شما، شما با استفاده از متد ()Substring میتونید هر قسمتی رو از رشته جدا کنید
یک نکته: اگه شما تاریخ رو به صورت 1391/5/12 ذخیره میکنید در جستجو دچار مشکل میشین
1391/5/12 از 1391/10/12 کوچیکتره اما در جستجو نتیجه عکس رو نشون میده
یا هر بخش رو جدا در بانک درج کنین فیلد روز و ماه و سال یا در تاریختون صفر هم بذارین البته اگر بر اساس تاریخ جستجو انجام میدین

tarsim
دوشنبه 20 آذر 1391, 22:42 عصر
سلام دوست عزیز اون تنها یک مثال بود البته با توجه به سوال شما، شما با استفاده از متد ()Substring میتونید هر قسمتی رو از رشته جدا کنید
یک نکته: اگه شما تاریخ رو به صورت 1391/5/12 ذخیره میکنید در جستجو دچار مشکل میشین
1391/5/12 از 1391/10/12 کوچیکتره اما در جستجو نتیجه عکس رو نشون میده
یا هر بخش رو جدا در بانک درج کنین فیلد روز و ماه و سال یا در تاریختون صفر هم بذارین البته اگر بر اساس تاریخ جستجو انجام میدین

سلام خب من هم میخوام همین کار رو کنم که در تاریخ صفر هم بزارم چی کار باید بکنم ؟

cccccccccc
دوشنبه 20 آذر 1391, 23:07 عصر
الآن به vs دسترسی ندارم وگرنه کدشو مینوشتم
برای ورودی مثلاً 1390/9/7
ایندکس دو اسلش رو بدست بیار
طول رشته رو هم حساب کن
اگر فاصله بین دو اسلش 2 است یعنی باید برای ماه صفر بذاری
اگر ایندکس اسلش دومی(بین ماه و روز) در مقایسه با طول رشته دو واحد کمتره برای روزهم باید صفر اضافه کنی

Mahmoud.Afrad
سه شنبه 21 آذر 1391, 16:41 عصر
شما میبایست تاریخی که میخواهید در دیتابیس ثبت کنید روز و ماه را دو رقمی کنید. اگر هر کدوم یک رقمی ثبت بشن در جستجوها به مشکل برمیخورید.
تاریخی هم که کاربر برای جستجو وارد میکنه را هم روز و ماه را دورقمی کنید و بعد جستجو کنید.
اگر این کار را نکنید برای جستجو بین دو تاریخ مثلا 1391/9/20 و 1391/9/3 به مشکل میخورید چون از لحاظ مقایسه رشته ها نمیتونید رکوردهای بین این دو تاریخ رو بدست بیارید چون در روز ، کاراکتر 3 از 2 بزرگتر هست.

برای درج صفر پشت روز یا ماه یک رقمی از متد زیر استفاده کرده و تاریخ را 10 کاراکتری در دیتابیس ذخیره کنید:
public string getpersiandate()
{
System.Globalization.PersianCalendar persiandate = new System.Globalization.PersianCalendar();
string p_date = persiandate.GetYear(System.DateTime.Now) + "/";
if (persiandate.GetMonth(System.DateTime.Now) < 10)
p_date += "0";

p_date = p_date + persiandate.GetMonth(System.DateTime.Now) + "/";

if (persiandate.GetDayOfMonth(System.DateTime.Now) < 10)
p_date += "0";

p_date = p_date + persiandate.GetDayOfMonth(System.DateTime.Now);

return p_date;
}

tarsim
سه شنبه 21 آذر 1391, 21:28 عصر
خیلی خیلی ممنون دوست عزیز من هم دنبال همین بودم . منتها نمیدونستم چطوری بنویسم . بازم تشکر.

ali.mansoori66
جمعه 20 اردیبهشت 1392, 14:47 عصر
خیلی خیلی ممنون دوست عزیز من هم دنبال همین بودم . منتها نمیدونستم چطوری بنویسم . بازم تشکر.
private string tolid_tarikh()
{
string tarikh;
tarikh = pc.GetYear(DateTime.Now).ToString();
if (pc.GetMonth(DateTime.Now) > 9)
tarikh += "/" + pc.GetMonth(DateTime.Now);
else
tarikh += "/" + "0" + pc.GetMonth(DateTime.Now);
if (pc.GetDayOfMonth(DateTime.Now) > 9)
tarikh += "/" + pc.GetDayOfMonth(DateTime.Now);
else
tarikh += "/" + "0" + pc.GetDayOfMonth(DateTime.Now);
return tarikh;
}

Mahmoud.Afrad
جمعه 20 اردیبهشت 1392, 15:01 عصر
حالا که تاپیکو آوردید بالا
از فرمت دهی هم میشه استفاده کرد:

private string GetPersianDate()
{
System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
return pc.GetYear(System.DateTime.Now).ToString("0000") + "/" +
pc.GetMonth(System.DateTime.Now).ToString("00") + "/" +
pc.GetDayOfMonth(System.DateTime.Now).ToString("00");
}