線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2423
推到 Plurk!
推到 Facebook!

parser10.zip

 
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2001-01-01 12:00:00 IP:0.0.xxx.xxx 未訂閱
檔案名稱:parser10.zip 版 本:10.1 原始程式:有(Source) 適用版本:(D1) (D2) (D3) 版權種類:免費軟體(FreeWare) 內容說明: Specialized component for parsing and evaluating mathematical expressions specified at runtime. Only 40-80% slower than the equivalent compiled expression. TParser 元件能夠解析, 轉換數學算式, 執行時期 ( Runtime ) 解析符式的速度僅比編譯時期解析慢 40% 到 80%.
------
~~~Delphi K.Top討論區站長~~~
附加檔案:5138_parser10.zip
bugmans
高階會員


發表:95
回覆:322
積分:188
註冊:2003-04-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-29 20:35:23 IP:125.225.xxx.xxx 未訂閱
今天恰巧找到parser10這個元件,安裝後發現還有很多好玩的功能
所以花了一些時間寫個範例給大家看看,雖然原始碼是Delphi但BCB一樣可以安裝
double Result;
1.四則運算
Parser1->Expression="5*3 5*(8 2)";
Result=Parser1->Value;//65

2.預設變數
parser10預設8個變數A,B,C,D,E,X,Y,T指定變數的值後,公式就能使用該變數
Parser1->X=0;
Parser1->Expression="cos(X)";
Result=Parser1->Value;//1

//將A,B,C當作常數,觀察在不同X時所得的值
Parser1->Expression="A*X^2 B*X C";
Parser1->A=1;
Parser1->B=2;
Parser1->C=1;
for(int i=1;i<10;i )
{Parser1->X=i;
Result=Parser1->Value;
//4,9,16,25,36,49,64,81
}

3.自訂變數
若8個預設變數不夠用的話,還可以用SetVariable設更多的變數
Parser1->SetVariable("var1",2);
Parser1->SetVariable("var2",3);
Parser1->Expression="var1 var2";
Result=Parser1->Value;//5
//呼叫GetVariable取得某個變數的值
double var=Parser1->GetVariable("var1");//2

4.自訂函數
我最欣賞這個功能了,藉由函數指標 (function pointer)的技術,
原程式沒有函數的功能就能靠自己來擴充
void __fastcall func1(POperation AnOperation)
{//求一個數的倒數值
double a=*(AnOperation->Arg1);
*(AnOperation->Dest)=1/a;
}
Parser1->AddFunctionOneParam("Inverse",func1);
Parser1->Expression="Inverse(X)";
Parser1->X=2;
Result=Parser1->Value;//0.5

void __fastcall func2(POperation AnOperation)
{//點(x,y)到(0,0)的距離
double a=*(AnOperation->Arg1);
double b=*(AnOperation->Arg2);
*(AnOperation->Dest)=sqrt(a*a b*b);
}
Parser1->AddFunctionTwoParam("Distance",func2);
Parser1->Expression="Distance(X,Y)";
Parser1->X=3;
Parser1->Y=4;
Result=Parser1->Value;//5


原問題
http://delphi.ktop.com.tw/board.php?cid=30&fid=70&tid=86384

http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=86130

在2002年就有人推薦過了,我到今天才發現這麼好用的元件
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=19775

原本的檔案連結已經失效了,在另外一個地方可以找到
http://delphi.icm.edu.pl/ftp/d10free/parser10.zip

系統時間:2017-10-19 11:29:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!