PDA

View Full Version : وارد کردن کاراکتر خاص در مکان های خاص در رشته



Bahar_HS
چهارشنبه 23 تیر 1389, 07:46 صبح
با سلام
می خوام عددی که کاربر در TextBox وارد می کنه ، سه رقم سه رقم با "کاما" جدا بشه،
این کد رو نوشتم ولی جواب نمیده،



str = txtnum.Text;
for(i=Lenght-3;i=0;i-=3)
str1 = str.substring(i,3)};
str1 = ','+str1;
str2 = str1 + str2; }


لطفا راهنمایی کنید چطور می تونم این کار رو بکنم؟

vandermond
چهارشنبه 23 تیر 1389, 08:02 صبح
دوست عزيز
گرچه اگه شما فرمت نوشته تون رو به n تغيير بديد اين كار رو ميكنه (با تنظيمات محلي و ...).

ولي همين كدي كه شما نوشتيد توي حلقه for شرط دومش رو نگا كنيد(:لبخند:). شما داريد بهش ميگيد (مثلا سول رشته باشه 20) i رو بزار 17 و اگه i =0 بود انجام بده... . درحالي كه بايد بگيد اگه i>0 يا i>=0 بود (خودتون ببينيد كدومشه ديگه. اينش با شما). توي حلقه for تا وقتي شرط دوم برقرار باشه، حلقه انجام ميشه. نه اينكه تا وقتي نباشه!!!:متفکر:
در ضمن من درستي بقيه كدتون رو ديگه بررسي نكردم فكر ميكنم درست باشه.
موفق باشيد

ahrimaneahurai
چهارشنبه 23 تیر 1389, 08:49 صبح
از کنترل های janus استفاده کنید. خیلی کامله

beh_develop
چهارشنبه 23 تیر 1389, 08:55 صبح
سلام من اینکارو طور دیگه ای انجام میدم، در رویداد Leave تکست باکس این کد رو می نویسم :


long temp;
if (long.TryParse(Text, out temp))
textBox1.Text = temp.ToString("#,##0");و در رویداد Enter این کد رو :


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

Bahar_HS
چهارشنبه 23 تیر 1389, 09:37 صبح
دوست عزيز
گرچه اگه شما فرمت نوشته تون رو به n تغيير بديد اين كار رو ميكنه (با تنظيمات محلي و ...).

ولي همين كدي كه شما نوشتيد توي حلقه for شرط دومش رو نگا كنيد(:لبخند:). شما داريد بهش ميگيد (مثلا سول رشته باشه 20) i رو بزار 17 و اگه i =0 بود انجام بده... . درحالي كه بايد بگيد اگه i>0 يا i>=0 بود (خودتون ببينيد كدومشه ديگه. اينش با شما). توي حلقه for تا وقتي شرط دوم برقرار باشه، حلقه انجام ميشه. نه اينكه تا وقتي نباشه!!!:متفکر:
در ضمن من درستي بقيه كدتون رو ديگه بررسي نكردم فكر ميكنم درست باشه.
موفق باشيد


اشتباه تایپی بود به خاطر عجله داشتن!درست می فرمایید شرط باید i>=0 باشه.

Bahar_HS
چهارشنبه 23 تیر 1389, 09:39 صبح
از کنترل های janus استفاده کنید. خیلی کامله

کنترل های janus ؟

چطور میشه از این کنترل ها استفاده کرد؟
(با سی شارپ کد می نویسم)

Bahar_HS
چهارشنبه 23 تیر 1389, 09:47 صبح
سلام من اینکارو طور دیگه ای انجام میدم، در رویداد Leave تکست باکس این کد رو می نویسم :


long temp;
if (long.TryParse(Text, out temp))
textBox1.Text = temp.ToString("#,##0");و در رویداد Enter این کد رو :


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

با سلام
کدی رو که گفتید در رویدادهای موردنظر نوشتم،
ولی وقتی توی تکس باکس عدد وارد می کنم اتفاقی نمی افته،
ممکنه کمی هم در مورد کدتون توضیح بدید؟
با سپاس از راهنمایی تون

beh_develop
چهارشنبه 23 تیر 1389, 10:39 صبح
با سلام
کدی رو که گفتید در رویدادهای موردنظر نوشتم،
ولی وقتی توی تکس باکس عدد وارد می کنم اتفاقی نمی افته،
ممکنه کمی هم در مورد کدتون توضیح بدید؟
با سپاس از راهنمایی تون


این راحتترین کدیه که می تونین بنویسین ، وقتی که دارین تو تکست باکس تایپ می کنین هیچ اتفاقی نمی افته ولی به محض اینکه Focus از رو تکست باکس به کنترل دیگری بره عدد رو 3 رقم ، 3رقم جدا می کنه و وقتی دوباره Focus به تکست باکس بر می گرده ، کاما های استفاده شده رو حذف می کنده

Bahar_HS
چهارشنبه 23 تیر 1389, 10:50 صبح
این راحتترین کدیه که می تونین بنویسین ، وقتی که دارین تو تکست باکس تایپ می کنین هیچ اتفاقی نمی افته ولی به محض اینکه Focus از رو تکست باکس به کنترل دیگری بره عدد رو 3 رقم ، 3رقم جدا می کنه و وقتی دوباره Focus به تکست باکس بر می گرده ، کاما های استفاده شده رو حذف می کنده



باز هم اتفاقی نیفتاد!
(با Tab روی کنترل ها جا به جا شدم)

میشه در مورد این کد کمی توضیح بدید.
با سپاس

beh_develop
چهارشنبه 23 تیر 1389, 14:02 عصر
باز هم اتفاقی نیفتاد!
(با Tab روی کنترل ها جا به جا شدم)

میشه در مورد این کد کمی توضیح بدید.
با سپاس

اگه میشه اون تکه از کد رو بزار رو سایت تا ببینم چی نوشتی و چرا کار نمی کنه.

Bahar_HS
پنج شنبه 24 تیر 1389, 10:33 صبح
str = txtnum.Text;
for(i=Lenght-3;i>=0;i-=3)
str1 = str.substring(i,3)};
str1 = ','+str1;
str2 = str1 + str2; }
txtnum.Text = str2;




از سمت راست سه کاراکتر سه کاراکتر جدا کنه و کاما بذارهو به str2 اضافه کنه.

Bahar_HS
یک شنبه 10 مرداد 1389, 09:18 صبح
بالاخره پیداش کردم،گفتم بنویسم شاید به کار کس دیگاه ای هم آمد



public string AddComma(string strNumber)
{
int lenght = strNumber.Length;
//Insert comma to string
for (int i = lenght - 3; i >= 0; i -= 3)
strNumber = strNumber.Insert(i, ",");
//
return strNumber;

}

vandermond
یک شنبه 10 مرداد 1389, 10:32 صبح
سلام دوست عزيز
من اين كد رو توي چند تاپيك ديگه هم گذاشتم. براي جدا كننده سه رقم سه رقم ميتوني از اين كد هم استفاده كني. هم چك ميكنه كه عدد باشه و هم جدا كننده ميزاره:

long Number;
if (!long.TryParse(textBox1.Text.Replace(",",""),out Number))
MessageBox.Show("Error");
textBox1.Text = string.Format("{0:n0}",Number);
textBox1.Select(textBox1.Text.Length, 1);
البته به جاي long ميتوني double بزاري كه بهتر باشه.
اينم آدرس تاپيك: http://barnamenevis.org/forum/showpost.php?p=1048492&postcount=7