PDA

View Full Version : سوال: اشکال در عملیات جدا سازی رشته ها



MehdiElexal
شنبه 30 دی 1391, 22:24 عصر
با سلام
کد حال حاظر که در تایمر هست چون اطلاعات از سریال میاد
if (txtRecived.Text != "")
{
string s = txtRecived.Text;
string[] a = s.Split('#');

lblTemp.Text = a[1].ToString();
}

اگر در txtreciver چیزی چاپ شه که با # شروع نشه اررور میده
وگرنه درست اسپلیت میکنه

اسپلیت هم اینجوریه که یک عدد میاد که سرو تهش # هست باید عدد وسطش رو داخل lbltemp نمایش بده
منتها کد زمانی درست کار میکنه که txtreciver ثابت باشه مثلا #3#
خروجی 3 میده

اما هرچیزی جز این بیاد مثلا $ اررور میده و دیگه split نمیکنه
ممنون

the king
شنبه 30 دی 1391, 23:25 عصر
lblTemp.Text = txtRecived.Text.Trim('#');



lblTemp.Text = txtRecived.Text.Replace("#", "");

MehdiElexal
شنبه 30 دی 1391, 23:43 عصر
ممنون اما کدهایی که شما لطف کردین و دادین فقط از # صرف نظر میکنه و هرچیزه دیگه باشه مینویسه
مثلا
3#%$#@
مینویسه
3%$@
من میخوام
کاراکتر بین # چاپ بشه
یعنی $%
مثال دیگه:
از این کد
#3#$%^
باید 3 چاپ شه
به عبارتی هرچی بین # هست نه هرچی جز شارپ #

Mahmoud.Afrad
یک شنبه 01 بهمن 1391, 02:57 صبح
رشته ای که در split دچار خطا میشه رو همراه با متن خطا بزارید.

the king
یک شنبه 01 بهمن 1391, 15:46 عصر
ممنون اما کدهایی که شما لطف کردین و دادین فقط از # صرف نظر میکنه و هرچیزه دیگه باشه مینویسه
مثلا
3#%$#@
مینویسه
3%$@
من میخوام
کاراکتر بین # چاپ بشه
یعنی $%
مثال دیگه:
از این کد
#3#$%^
باید 3 چاپ شه
به عبارتی هرچی بین # هست نه هرچی جز شارپ #


string s = txtRecived.Text;
int startPos = s.IndexOf('#');
if (startPos >= 0)
{
int endPos = s.IndexOf('#', startPos + 1);
if (endPos >= 0)
{
lblTemp.Text = s.Substring(startPos + 1, endPos - startPos - 1);
}
}