PDA

View Full Version : گرفتن مقدار و جدا کردن ان از rich textbox



single_2008boy
شنبه 05 آذر 1390, 08:02 صبح
سلام من می خوام n تا مقدار از rich textbox بگیرم و با "," از هم جدا کنم مقدارم هم اعشاری است چی کار کنم؟

asadegha
شنبه 05 آذر 1390, 08:42 صبح
سلام.
یکم واضح تر مسئله رو بگو. یعنی می خوای توی یه rt بیای خودت عدد بدی و با , جدا کنی؟

با متد های indexOf و subString کار جدا سازی رو میتونی انجام بدی.

textbox1.Text.IndexOf(Value, StartIndex)

textbox1.Text.SubString(startIndex, Length)

single_2008boy
شنبه 05 آذر 1390, 14:08 عصر
اره میشه یکم بیشتر توضیح بدی چه جوریه؟

asadegha
یک شنبه 06 آذر 1390, 12:21 عصر
indexof:
یه رشته یا یه کاراکتر رو توی رشته مورد نظرت جستجو میکنه و شماره خونه مقداری که داری سرچ می کنی رو بر میگردونه.

value مقداری هست که در رشته مورد نظرت پیدا میکنه و شماره خونه اون (index) رو بهت میده. اگه پیدا نکرد -1 بر میگردونه.
startindex خونه ی شروع جستجو در رشته رو مشخص میکنه. یعنی اگه صفر باشه منظورش اول جمله هست.
مثلا:

string str = "12,18,17,20";
int index = str.IndexOf(',', 0); //index=2
index = str.IndexOf(',', 6); //index=8


----------------------------
substring:
بخشی از رشته مورد نظر رو بر میگردونه.

startindex توضیح مثل بالا.
length طول یا تعداد کاراکتر هایی هست که می خوای از نقطه startindex برات برگردونه.

مثلا:

string str = "12,18,17,20";
string substr = str.Substring(3, 5); //substr = "18,17"

asadegha
یک شنبه 06 آذر 1390, 12:47 عصر
حالا شما می خوای اعداد مورد نظرت رو جدا کنی.
باید درون حلقه قرار بدی و عملیات جدا سازی رو انجام بدی.
کدش رو نوشتم برات میزارم. سوال داری بپرس.


//farz mikonim textboxe shoma maghadire zir ro dare
//textBox1.Text = "12,1998,107,0,149,1000,16666";
//va ba farze inke maghadir ro badaz joda sazi
//dar araye int gharar mide.

string str = textBox1.Text;
int[] a = new int[100];

int index = -1;
int startindex = 0;

int i = 0;
do
{
index = str.IndexOf(',', index + 1);
if (index == -1 && startindex < str.Length) index = str.Length;
int length = index - startindex;
a[i++] = int.Parse(substr);
startindex = index + 1;
} while (index != str.Length);

asadegha
یک شنبه 06 آذر 1390, 12:51 عصر
یادم رفت عدد اعشاری بود. بازم فرقی نداره.
بجای آرایه int از float استفاده کن.
بجای int.parse از float.parse استفاده کن.

asadegha
دوشنبه 14 آذر 1390, 21:34 عصر
از splite هم می تونی استفاده کنی.