PDA

View Full Version : Syntax در Richtextbox



پرستو پارسایی
چهارشنبه 26 شهریور 1399, 23:44 عصر
با سلام برای ذخیره و استفاده سریع از کدهای مورد نیازم یک پروژه کوجک نوشتم که برای من بسیار کارآمده . ولی مشکلی در نمایش کدها پس از فراخوانی برایم پیش اومده که هر جقدر سرچ کردم نتیجه نگرفتم . کدها قبلا از ذخیره سازی رنگی هستند مانند محیط ادیت ویژوال استودیو ولی وقتی کد رو ذخیره میکنم و مجدد فراخوانی میکنم کل متن مشکی هست نمیدونم چرا ؟ آیا Richtextbox برای این کار مناسب هست یا باید از کنترل دیگری استفاده کنم اگر مناسب هست برای رنگی نگهداشتن متن کدها از چه روشی باید استفاده کنم یک نمونه برنامه در همین سایت دیدم یکی از دوستان این کار رو کرده حتی لاین کدها هم شماره داشت البته سورس نبود یک فایل نصبی بود . ممنون میشم اساتید در صورت اطلاع راهنمایی بفرمایید . سپاسگزارم

the king
پنج شنبه 27 شهریور 1399, 00:47 صبح
با سلام برای ذخیره و استفاده سریع از کدهای مورد نیازم یک پروژه کوجک نوشتم که برای من بسیار کارآمده . ولی مشکلی در نمایش کدها پس از فراخوانی برایم پیش اومده که هر جقدر سرچ کردم نتیجه نگرفتم . کدها قبلا از ذخیره سازی رنگی هستند مانند محیط ادیت ویژوال استودیو ولی وقتی کد رو ذخیره میکنم و مجدد فراخوانی میکنم کل متن مشکی هست نمیدونم چرا ؟ آیا Richtextbox برای این کار مناسب هست یا باید از کنترل دیگری استفاده کنم اگر مناسب هست برای رنگی نگهداشتن متن کدها از چه روشی باید استفاده کنم یک نمونه برنامه در همین سایت دیدم یکی از دوستان این کار رو کرده حتی لاین کدها هم شماره داشت البته سورس نبود یک فایل نصبی بود . ممنون میشم اساتید در صورت اطلاع راهنمایی بفرمایید . سپاسگزارم
RichTextBox دو جور متن ورودی و خروجی متفاوت داره، Text و SelectedText متن ساده بدون فرمت هستند که طبعا اطلاعات رنگ داخلش نیست و شبیه چیزی است که از TextBox دریافت میشه. اگر با استفاده از Text و SelectedText ذخیره کرده باشید فرمت متن رو از دست داده اید. بر خلاف دو نمونه قبلی، Rtf و SelectedRtf متن فرمت دار هستند که اطلاعات رنگ هم داخلش قرار داره. اگر قصد ذخیره کردن آنچه داخل RichTextBox نمایش داده شده رو دارید باید از Rtf استفاده کنید که با فرمت RTF ئه، نه Text

کلا سه شیوه پیاده سازی هست، یکسری که عمده کد های موجود در اینترنت رو تشکیل میده پایه و اساس شون RichTextBox ئه. یک عیب کلی که دارند کند بودن روال ئه، اگر متن کد طولانی باشه این کندی محسوس خواهد بود، اگر کد طولانی نباشه اینجور راه حل ها مشکل خاصی ندارند.
یکسری پیاده سازی های دیگه سعی کرده اند که با +GDI محیط Editor رو شبیه سازی کنند. اگر Fast Colored TextBox for Syntax Highlighting رو در گوگل جستجو کنید نمونه اینطوری رو پیدا می کنید ولی بخاطر محدودیت در طراحی عموما این پیاده سازی ها مناسب متن زبان هایی مثل فارسی یا عربی نیست.
یکسری دیگه کمپوننت های تخصصی هستند که طبعا امکانات یک ویرایشگر حرفه ای کد رو دارند، مثلا https://www.actiprosoftware.com/products/controls/windowsforms

پرستو پارسایی
پنج شنبه 27 شهریور 1399, 12:06 عصر
ممنونم از پاسخ شما برای اینکه richtextbox رو با فرمت RTF معرفی کنیم از چه روشی باید استفاده کرد و اگر کد ما با فرمت rtf ذخیره بشه ، در آپدیت مشکلی پیش نمیاد ؟ من در اسکیوال ذخیره میکنم تو رفرنس های غیر ایرانی سرچ کردم ولی خیلی پیچیده توضیح داده بودند و بیشتر DLL بود ولی من نمیخواهم از DLL استفاده کنم سپاسگزارم

the king
پنج شنبه 27 شهریور 1399, 16:46 عصر
ممنونم از پاسخ شما برای اینکه richtextbox رو با فرمت RTF معرفی کنیم از چه روشی باید استفاده کرد و اگر کد ما با فرمت rtf ذخیره بشه ، در آپدیت مشکلی پیش نمیاد ؟ من در اسکیوال ذخیره میکنم تو رفرنس های غیر ایرانی سرچ کردم ولی خیلی پیچیده توضیح داده بودند و بیشتر DLL بود ولی من نمیخواهم از DLL استفاده کنم سپاسگزارم

RTF از نوع داده string ئه، پس با هر شیوه مناسب ذخیره سازی یک متن string سازگاری داره.

پرستو پارسایی
شنبه 29 شهریور 1399, 23:07 عصر
کمال تشکر را از پاسخگویی شما دارم اما من دقیقا با همین شیوه مناسب ذخیره سازی مشکل دارم و همونطور که تو پست قبلیم عرض کردم تو رفرنس ها ی غیر ایرانی نتونستم جوابم رو پیدا کنم ممنون میشم در مورد ذخیره سازی در دیتابیس SQL راهنمایی بفرمایید . سپاسگزارم

Hossis
سه شنبه 15 مهر 1399, 08:26 صبح
با سلام
بدون ذخیره سازی کدهای رنگی شده، می تونید با استفاده از عبارت با قاعده، متن رو رنگی کنید
من از این شیوه استفاده می کنم
هم کدهای اچ تی ام ال و هم کدهای وی بی و هر زبانی رو با تحلیل کدها و دستور آن زبان می توان رنگی کرد هرچند محدودیت هایی داره، اما دستتون خیلی بازه

پرستو پارسایی
سه شنبه 15 مهر 1399, 10:46 صبح
با سلام
بدون ذخیره سازی کدهای رنگی شده، می تونید با استفاده از عبارت با قاعده، متن رو رنگی کنید
من از این شیوه استفاده می کنم
هم کدهای اچ تی ام ال و هم کدهای وی بی و هر زبانی رو با تحلیل کدها و دستور آن زبان می توان رنگی کرد هرچند محدودیت هایی داره، اما دستتون خیلی بازه

ممنونم از پاسخ شما امکانش هست یک نمونه معرفی کنید.

Hossis
سه شنبه 15 مهر 1399, 18:58 عصر
ممنونم از پاسخ شما امکانش هست یک نمونه معرفی کنید.
این پروژه ای هست که من نوشتم و کدهای وی بی و همه زبان ها رو توش ذخیره می کنم

152267
152268
152269

Hossis
سه شنبه 15 مهر 1399, 18:59 عصر
دقت کنید که سورس نسخه قبلی اش رو هم ضمیمه کردم
لینکش بین دو تا عکس هست

پرستو پارسایی
سه شنبه 15 مهر 1399, 22:35 عصر
ممنونم ولی پروژه فاقد کامپوننت هست (Hekmat dll)

Hossis
چهارشنبه 16 مهر 1399, 06:32 صبح
کامپوننت هم ضمیمه شد

Hossis
چهارشنبه 16 مهر 1399, 06:42 صبح
به این آدرس ها هم سری بزنید
https://barnamenevis.org/showthread.php?520293-%D8%B3%D9%88%D8%B1%D8%B3-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%C2%AB%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7-%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%C2%BB&highlight=

و
https://barnamenevis.org/showthread.php?424076-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%B3%D9%88%D8%B1%D8%B3-%D9%87%D8%A7%DB%8C-%D9%88%DB%8C-%D8%A8%DB%8C&highlight=