PDA

View Full Version : سوال در مورد Splitter در سی شارپ



ramtinak
یک شنبه 12 خرداد 1392, 11:45 صبح
سلام، من وقتی بخوام یک تکست باکس رو Split کنم که به صورت تصادفی چیزی رو به من نشون بده ، از دستور زیر استفاده میکنم :

string[] war = null;
war = txtsplit.Text.Split('#');
Random random721 = new Random();
string result = war[random721.Next(war.Length)];
MessageBox.Show(result, "Message");


حالا مثلا متنی که در TXTSPLIT نوشته شده از 400 کاراکتر بیشتر بود رو چطوری توی 2تا پیام نشون بدم؟ من این کار رو کردم :


string[] war = null;
war = txtsplit.Text.Split('#');
Random random721 = new Random();
string result = war[random721.Next(war.Length)];
MessageBox.Show(result, "Message");

if (result.Length > 400)
{
result = result.Substring(400);
MessageBox.Show(result, "Message");
}


خب حالا فرض کنید که ما متنی در TXTSPLIT مینوسیم :

سلام شما تا به حال به برنامه نویس آمده اید ؟ وبسایتی آموزشی برای شما دوست عزیز #سلام خوبی ؟ چه خبر 123456789 بدم ! نه اصلا........................

خب الان این دوتا پیام هست ! فرض کنید که از 400 کلمه بیشتر بودن ، با کدی که من نوشتم 2بار پیام رو نشون میده ! یعنی اینکه اول کل پیام رو تا آرایمون میگره و نشون میده بعد اگه از 400 تا بیشتر بود ، از کاراکتر 400 به بعد رو دوباره ارسال میکنه ، حالا اگه من بخوام کاری کنم که بار اول فقط تا همون کاراکتر 400 رو نشون بده و بار بعدی از کاراکتر 400 به بعد رو نشون بده چیکار باید بکنم؟

سوال دوم :
فرض کنید 2تا تکست باکس و یک دکمه داریم و TextBox2 رو Split کردیم و یک کلمه واسش تعریف کردیم ( مثلا WAR )

WAR1= ta avalin #
WAR2 = ta Dovomin #
WAR3 = ta Sevomin #

مثلا توی تکست باکس2 این ها هستند :

link1#link2#link3#link4

مثلا اگه توی تکست باکس 1 بنویسیم WAR1 دقیقا همون متن link1 رو ارسال کنه ! و WAR2 رو اگه بنویسیم ، Link2 رو ارسال کنه .... و به صورت تصادفی نباشه ( البته وقتی روی دکمه کلیک کردیم!)


if (textBoxQ.Text.ToLower().IndexOf("war") + 1 != 0)
{
string[] war = null;
war = txtsplit.Text.Split('#');
Random random721 = new Random();
string result = war[random721.Next(war.Length)];
MessageBox.Show(result, "Message");
}


خب با اینکار به صورت تصادفی بهم نشون میده ، اگه بخوام اونجوری که میخوام کد رو بنویسم چیکار باید کنم؟کد رو به چه چیزی تغییر بدم؟

ممنون میشم جواب بدید.

fakhravari
یک شنبه 12 خرداد 1392, 12:46 عصر
فقط تا همون کاراکتر 400 رو نشون بده و بار بعدی از کاراکتر 400 به بعد رو نشون بده = با ساب استرینگ دیگه خودت گفتی. 0 تا 400 و 0 تا کل طول - 400

ramtinak
یک شنبه 12 خرداد 1392, 13:00 عصر
بسیار بسیار ممنون اما نفهمیدم،
اگه میشه بیشتر توضیح بدید

ramtinak
یک شنبه 12 خرداد 1392, 16:00 عصر
یعنی هیچ کی جواب این دو تا سوال رو نمیدونه ؟