PDA

View Full Version : مبتدی: تشخیص پرانتز در دو طرف متن



windowsyar
شنبه 18 دی 1395, 08:46 صبح
سلام
من می خواهم در متن زیر وقتی کاربر روی یکی از آی دی ها که بین پرانتز نوشته شده
دوبار کلیک کرد یک فرم باز بشه و...
کد این که وقتی کاربر دوبار کلیک کرد متن گرفته بشه را دارم
ولی نمی دانم چطور چک کنم که در اول و آخر متن گرفته شده پرانتز وجود دارد
ببخشید مبتدیانه است ولی نمی دانم
--------------------------------------------------------
و یک سوال دیگر چگونه اندازه تمام متن هایی که بین دو پرانتز هستند را کم کنم
باید چگونه جستجو کنم؟

c0mmander
شنبه 18 دی 1395, 11:42 صبح
هر چند که این الگوریتمها روش های اصولی نیست و ابتکاری دسته بندی میشه اما یک پیشنهاد دارم.

در شرایطی که شما فقط متن دارید ویژگی هدف رو پیدا کنید به عنوان مثال در اینجا آی دی ها هستند که:

1- رشته عددی
2- بدون فاصله
3- بعد اولین کارکتر غیر عددی از راست پرانتز بسته و اولین کارکتر غیر عدد از سمت چپ پرانتز بسته.
4- قبل از پرانتز بسته حتما یک فاصله وجود داره.

حالا کاری که باید انجام بدید این هست که این شرایط رو در حرفی ای که مثلا در سمت راست یا چپ اشاره گر هست رو بررسی کنید.

گفتم این راه ها غیر قابل اعتماد هستند و ممکنه استثنا وجود داشته باشه.

یا راه دیگه اینکه در یک متن در صورتی که تعداد کارکتر های تغییر و تعداد لاین ها تغییر نداشته باشه بازم می تونید مثلا 400000 شرط بنویسید که اگر در این بازه کلیک شد فلان کار رو انجام بده :لبخند:(البته برای مزاح گفتم)

یا روش های دیگه مثل قرار دادن لینک و غیره.

windowsyar
شنبه 18 دی 1395, 21:30 عصر
ممنون از راهنماییتون دوست عزیز
من این سورس را ساختم
هنگامی که روی ریچ تکس باکس دابل کلیک کنم متن درون تکس باکس پایین قرار می گیرد
-------------------------
مشکل من اینجاست
که از کجا تشخیص بدهم این متن انتخاب شده(یا به عبارتی متنی که روی آن دابل کلیک شده) عدد است یا متن ؟
می خواهم اگر عدد بود در تکس باکس سمت راست
و اگر متن بود در تکس باکس سمت چپ نمایش داده شود
-------------------------در یک کلام : از کجا بفهمم یک رشته عددی است یا متنی ؟؟؟

ژیار رحیمی
یک شنبه 19 دی 1395, 00:07 صبح
سلام با خاصیت RichTextBox1.SelectedText میتونی متن انتخاب شده داخل RichTextBox1 بدست بیاری لازم به نوشتن کد اضافه نیست.
RichTextBox دارای ایونتی بنام SelectionChanged هست در صورتیکه متن انتخابی تغییر کرد فراخوانی میشود باید در این event کدهای مورد نظرتو بنویسی

private void RichTextBox1_SelectionChanged(object sender, EventArgs e)
{
TextBox1.Text = RichTextBox1.SelectedText;
int num = 0;
int.TryParse(RichTextBox1.SelectedText, out num);
if(num==17313) MessageBox.Show(num.ToString());
}

hamid_hr
یک شنبه 19 دی 1395, 09:09 صبح
متد int.tryparse یک خروجی از نوع bool داره اگه این خروجی true باشه یعنی این رشته یک عدد است وگرنه این رشته عدد نیست.
شما با این متد رشته رو تبدیل به عدد کن و چک کن ببین خروجی true هست یا False

windowsyar
دوشنبه 20 دی 1395, 09:54 صبح
خیلی متشکرم از همه
----------------------------------
حال می شود کدی نوشت که تمامی متن هایی که داخل پرانتز نوشته شده اند دارای متن متفاوت شوند یا زیرشان خط کشیده شود