وب‌سرویس ماشین حساب فرمولی

یه برنامه ای میخواستم بنویسم که یکی از دوستام گفت اون برنامه درصورتی بدرد میخوره که رو وب هم کار کنه. منم برای اینکه ببینم میتونم همچی کاری بکنم یا نه برای آزمایش یه وب سرویس نوشتم. این وب سرویس خیلی خیلی ساده است و فقط یک تابع دارد.
تابع calculate که 2 پارامتر ورودی (عبارت ریاضی و لیست متغیرها) میگیرد و یک ساختمان داده شامل جواب عبارت ریاضی (ans) و شماره خطای احتمالی(er) برمیگرداند.
همه سورس کد وب سرویس (بجر 4 تا کلاسش که از vb6 تبدیل کردم!) در زیر آمده :
Structure InfixRetVal
Dim ans As Double
Dim er As Int16
End Structure
< WebMethod() > Public Function Calculate(ByVal infix As String, ByVal varlist As String) As InfixRetVal
Dim tmp As New CInFix()
tmp.InFix = infix
tmp.VariableList = varlist
Calculate.ans = tmp.Calculate
Calculate.er = tmp.GetLastError
End Function
اگر مایلید بدانید که اون چهارتا کلاس چجوری کار میکنند باید یه سری به اینجا بزنید و توضیحات مختصر آن بخش را بخوانید.
برای استفاده کردن از این وب سرویس در vs.net خود به منوی project\add web refrence... بروید و این آدرس را در آن وارد کنید http://www.ehsani.ir/calc/calculator.asmx و پس از اینکه وب سرویس را پیدا کرد add refrence را بزنید.
حالا برای اینکه از آن استفاده کنید میتوانید کد زیر را بنویسید :
Dim c As New org.ehsani.www.CalculatorService()
Dim ret As org.ehsani.www.InfixRetVal
ret = c.Calculate(TextBox1.Text, TextBox2.Text)
TextBox3.Text = ret.ans
نمونه کار برنامه را میتوانید در اینجا ببینید.
کد برنامه را میتوانید از اینجا بگیرید.
کد مثال برنامه را میتوانید از اینجا بگیرید.
حاشیه : تو این برنامه میتونید از sin ,cos ,tan ,atn ,ln ، فاکتوریل(!) و توان (^) استفاده کنید و هرتعداد متغیر که دوست داشته باشید تعریف کنید و هر اسمی که بخواهید به آنها بدهید مثلا jooti یا هر چیز دیگه! اصلا ناراحت غلط بودن عبارت ریاضی نباشید چون برنامه خیلی سریع مچتون رو میگیره! پرانتز هم به تعداد نا متناهی و تو در تو مجاز است.

جوتی

سیصد و شصت و پنج روز پیش :

تمام حقوق این سایت متعلق به امیر احسانی است.
شما حق دارید از مطالب این سایت هرطور که مایل هستید استفاده کنید بشرط اینکه برای آنها هیچ گونه وجهی دریافت نکنید. اگر منبع را هم ذکر کنید ممنون میشم.
jooti [at] ehsani [dot] org

جوتی

پسر/دختر بابالنگدراز

My Favorites:
bbgoal
lamp
far-near
ashoob
miladkdz
rohmamiya
acetaminophen
debug
smartdevice
farstec
khak
aaab
nochagh
persiangirl
parsmedia
w3schoolsir
azemat
sargardoon
mahoordad
techopedia

My Programs:
BlogClient
MinsweeperRobot
Calculator
CalcWebSrvc
2unicode
HuffmanCode
FileValidator
ConvexHall2D
FSProject
IISLog

Options:
No CSS
CSS Layout