PDA

View Full Version : سوال: فرمول نویسی در textBox



plastic
شنبه 17 آبان 1399, 14:57 عصر
سلام وقت بخیر. خسته نباشید. بنده قصد دارم که داخل یک textbox فرمولی رو بنویسم . و بعد از زدن کلید محاسبه مقادیر فرمول را محاسبه کند . مثلا یک سری دیتا در دیتاگرید ویو دارم به شکل :a = 200 و b = 20 و c = 2 سپس در یک تکس باکس اگر عبارت (a^2+c) ضرب در b رو نوشتم میخوام محاسبه با توجه به اولویت بندی انجام بشه . یا اگر فرمول را به هر سبکی تغییر دادم خروجی به درستی محاسبه بشه . خیلی در سایت های خارجی سرچ کردم و حتی سایت های داخلی متاسفانه مطلبی که کار منو بخواد راه بندازه رو پیدا نکردم . ممنون میشم روش و منطق چگونگی این کار رو بهم بگید . سپاس .
تصویر پایین گویای همه چی هست .



https://barnamenevis.org/attachment.php?attachmentid=21190&stc=1&d=1217685324

the king
شنبه 17 آبان 1399, 16:01 عصر
سلام وقت بخیر. خسته نباشید. بنده قصد دارم که داخل یک textbox فرمولی رو بنویسم . و بعد از زدن کلید محاسبه مقادیر فرمول را محاسبه کند . مثلا یک سری دیتا در دیتاگرید ویو دارم به شکل :a = 200 و b = 20 و c = 2 سپس در یک تکس باکس اگر عبارت (a^2+c) ضرب در b رو نوشتم میخوام محاسبه با توجه به اولویت بندی انجام بشه . یا اگر فرمول را به هر سبکی تغییر دادم خروجی به درستی محاسبه بشه . خیلی در سایت های خارجی سرچ کردم و حتی سایت های داخلی متاسفانه مطلبی که کار منو بخواد راه بندازه رو پیدا نکردم . ممنون میشم روش و منطق چگونگی این کار رو بهم بگید . سپاس .
تصویر پایین گویای همه چی هست .



https://barnamenevis.org/attachment.php?attachmentid=21190&stc=1&d=1217685324


روش های مختلفی وجود دارند، مثلا یکسری Expression Evaluator هایی وجود دارند که کارشون همینه که یک عبارت به عنوان ورودی بگیرند و اجراش کنند و اگر مقداری حاصل میشه برگردونند. که هم نمونه های ساده و کوچک شون هست و هم کتابخانه های پیشرفته و مجهز. برای شروع این لینک خوبیه، چون علاوه بر معرفی یک نمونه لینک به سایر گزینه ها هم داره :
https://github.com/codingseb/ExpressionEvaluator

بجز Expression Evaluator ها می توانید از یک زبان مفسری جانبی استفاده کنید که قابلیت هایش طبعا بیشتر از صرفا یک Expression Evaluator ئه چون یک زبان برنامه نویسی کامل ئه و البته به سادگی از عهده محاسبه یک عبارت ریاضی بر میاد. مثلا اگر کتابخانه ای که مفسر زبان Lua یا Python یا Javascript رو برای استفاده در برنامه #C شما فراهم می کنه به پروژه تون اضافه کنید، می توانید فرمول ریاضی رو بصورت یک کد برنامه نویسی اون زبان دربیاورید، تفسیر کنید و تا نتیجه بدست بیاد.

روش های دیگری هم هست، مثلا در شرایطی که ویژوال استدیو روی سیستم نصب باشه (NET SDK. و Windows SDK نصب شده باشه) می توانید در خود برنامه #C با استفاده از System.CodeDom.Compiler در یک لحظه یک اسمبلی برای اجرای اون فرمول کد نویسی و کامپایل و اجرا کنید تا نتیجه اش بدست بیاد. طبعا در شرایطی که ویژوال استدیو نصب نباشه همچین کاری شدنی نیست.

برای جستجوی ایده ها #expression evaluator for c رو در گوگل جستجو کنید.