PDA

View Full Version : کپی (انتقال) یک متن از richTextBox به TextBox



remower
جمعه 19 خرداد 1396, 12:32 عصر
سلام دوستان، چطور میتونم یک متن یا کلمه ی رو از richtextbox به textbox انتقال (کپی) بدم البته اگه آن متن در ریچ باکس وجود داشته باشد ممکنه این متن تغییر کنه
بعنوان مثال من در richtextbox متن طولانی نوشته شده و من میخوام یه متنی رو از این متن طولانی به تکست باکس بفرسته
بعنوان مثال این متن:man dar shiraz zendegi mikonam va 24 saleh hastam'
ولی ممکن است کلماتی مثل shiraz و 24 در این متن تغییر کنه و کلماتی دیگر باشه مثلا:
' man dar ... zendegu mikonam va ... saleh hastam'
جاهای نقطه چین ممکن است تغییر کنه
و یا به طریق دیگری متنی رو بفرسته تو تکست باکس
مثلا: متنی رو بفرسته که اول اون متن man و آخرش hastam باشه دیگه بین این دو کلمه هرچی نوشته شده رو همراه این کلمات به تکست باکس بفرسته
'Man...hastam'

ممنون میشم کمکم کنید🌹

رامین مرادی
شنبه 20 خرداد 1396, 10:09 صبح
من متوجه نشدم اما فک کنم منظورتون این بود. textbox.Text=richtextbox.Text;

ali_md110
شنبه 20 خرداد 1396, 18:58 عصر
سلام
من منظور شما رو خوب متوجه نشدم
ولی اگر میخاید کلماتی رو از یک جمله فیلتر کنید میتونید از lambda استفاده کنید
فرض کنید richtext همون کنترل شما باشه
و اون messageBox تکست باکس شما باشه


string richText = " man dar shiraz zendegi mikonam va 24 saleh hastam";
string[] values = richText.Split(' ');
var filter = values.Where(x => x != "man" && x != "hastam");
StringBuilder sb = new StringBuilder();
foreach (var word in filter)
{
sb.Append(word + " ");
}
MessageBox.Show(sb.ToString());

توی این قسمت


var filter = values.Where(x => x != "man" && x != "hastam");

میتونید هرگونه فیلتری اعمال کنید

336699
شنبه 20 خرداد 1396, 21:11 عصر
سلام
من منظور شما رو خوب متوجه نشدم
ولی اگر میخاید کلماتی رو از یک جمله فیلتر کنید میتونید از lambda استفاده کنید
فرض کنید richtext همون کنترل شما باشه
و اون messageBox تکست باکس شما باشه


string richText = " man dar shiraz zendegi mikonam va 24 saleh hastam";
string[] values = richText.Split(' ');
var filter = values.Where(x => x != "man" && x != "hastam");
StringBuilder sb = new StringBuilder();
foreach (var word in filter)
{
sb.Append(word + " ");
}
MessageBox.Show(sb.ToString());

توی این قسمت


var filter = values.Where(x => x != "man" && x != "hastam");

میتونید هرگونه فیلتری اعمال کنید

سلام
این کد فقط اون کلماتی رو که تعریف شده حذف مینه و بقیه رو برمی گردونه :متعجب:

در همین کد اگه شما بجای man ، کلمه shiraz رو قرار بدین ، در این صورت کلمات قبل از shiraz رو هم برمیگردونه

در صورتی که این دوستمون میخواد کلمات بین این دو کلمه رو برگردونه

_behnam_
شنبه 20 خرداد 1396, 21:14 عصر
سلام
چیزی که مد نظر دوستمون هستش میشه گفت توی تطبیق الگو ، عبارات باقاعده هستش.
Regex انعطافپذیری بالایی داره و توی چت بات ها نیازش حس میشه.
کاربر توسط علائم الگویی طراحی میکنه و از طریق اون متن رو پردازش میکنه.

متن زیر رو در نظر بگیرید :

in matne nemone ast baraye test Regex dar C#
ba regex mishe matn ro pardazesh kard masalan jomleye robero " esme man behname hodoode 27 salame va sharam bushehr ast" ro az in matn keshid biroom , va ya jomeleye esmam behnam hast .
regex esme man vasash mohem nist. moheme oon olgooi hastesh ke man behesh midam.
hata age begam esme man mahmood ast , mahmood ro dar miare. age esmo familoham baham begam baz mitone beshnase . bebinid : esmam behname eslamirad hast.



برنامه الگویی رو ک واسش تعریف کردم میگیره و چیزایی رو ک میخوام واسم برمیگردونه
الگوهه زیر رو ببینید :
esm(am|e *man) *[a-z0-9 ]+ h*ast

اولش esm هست. گفتم که هرچا اولش esm بود. یعدش (am|e *man) اومده. گفتم که بعد esm باید یا am باشه (esmam) یا e man باشه (esme man)
بعدشم که [a-z0-9 ] و h*ast .

یک سورس سادده رو نوشتم واستون میزارم. بررسی کنید.
برای اطلاعات بیشتر و درک علائم * + [] () | تاپیک زیر رو ببینید :
http://barnamenevis.org/showthread.php?139020-%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%A8%D8%B1%D8%AE%DB%8C-%D8%B9%D9%84%D8%A7%D8%A6%D9%85-%D8%B9%D8%A8%D8%A7%D8%B1%D8%A7%D8%AA-%D9%85%D9%86%D8%B8%D9%85