手头上有个问题,就是写一个关于“(”“)”“+”“-”“*”“/”的算法,要求是写个函数,让这个函数计算出某个带有以上运算符的式子;例如,式子为((a+b)*c)+(c+d)*c ,通过函数类似count(s:string;value:array of string)计算出式子结果,其中s为具体的式子,value为变量的值。
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
不知道网上有没有现成的这样的函数,,很急啊,望高手们帮忙!!
解决方案 »
- 怎么用WebService 上传 下载文件
- 如何把工程中的一个窗体单独取出来并编译成可执行文件
- sql server+ado访问,在win2k server+98用pxe做的无盘下访问不了数据库?
- 关于两个函数的使用; 解决了就给分
- 请问谁有delphi的中文帮助?
- 请教:从表中取出一列数据
- 今儿高兴,发一自己写的信息资料管理系统
- 请问如何从MIDAS服务器调用客户端的方法,以前好象看到过
- 请问如何声明一个自定义的函数?
- 找不到窗体文件怎么办?
- 新!!新!!dbgrid新问题,联想功能。高手请进。急。
- 我做了个三层结构的东西,在xp和2000下能正常运行,但在98下,找不到server,连不上服务器
{$R *.dfm}function Eval(expStr: string): string;
var
js: OleVariant;
begin
js := CreateOleObject('ScriptControl');
js.Language := 'VBScript';
Result := js.Eval(expStr);
js := Unassigned;
end;procedure TForm1.FormCreate(Sender: TObject);
var a,b,c,d:integer;
begin
a:=2900;
b:=434;
c:=200;
d:=34;
showmessage(Eval(format('((%d+%d)*%d)+(%d+%d)*%d',[a,b,c,c,d,c])));
end;
比如
s:='23*4+15-26';
adoquery1.sql.add('select '+s);
然后open
showmessage(adoquery1.fields[0].asstring)看看就知道了
给分吧,哈哈