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

請教關於字串轉變數的難題

尚未結案
skyline01
一般會員


發表:8
回覆:2
積分:2
註冊:2004-07-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-09 15:41:52 IP:61.218.xxx.xxx 未訂閱
請教各位大大 小弟有一個難題想請各位高手解答,感激不盡..謝謝! 就是本人想設計一個text讓USER輸入字串,例如"ABC" 當程式收到字串後,就會找到原先已經宣告的變數,進而 得到該變數的使用權 ex: int ABC=100; int xyz=4; float pi=3.14; 當從text取得USER所輸入的"ABC",程式就知道這字串是對應 原先宣告的ABC變數,接著就可以取得該值或做其他的事 請問如果不使用if或switch判斷的方法,有其他辦法可以轉換嗎?
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-09 22:31:19 IP:211.76.xxx.xxx 未訂閱
skyline01 您好:    程式中的變數名稱是為了給編譯階段編譯器辨識各變數之用,所以在編譯過後,這些變數就轉換成相對的位址了,也就是說,原先叫ABC的變數,已經不是以ABC存在了。 因此如果您要做到如上您所說的功能,就必須用間接的方式,把原先的變數以一個和變數名稱相同字串去表示,當user輸入該字串時,您在判斷後作相關的處理,例如,(底下的虛擬碼供您參考)    if ( text=="ABC" ) result=ABC;  // 取得其值 if ( text=="xyz" ) result=xyz; ...... 或者, if ( text=="ABC" ) result=&ABC; // 取得其位址 if ( text=="xyz" ) result=&xyz;    還有不同型態之間要能夠判斷與承接,所以要小心的處理傳回的值。供您參考。 
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-09 23:04:38 IP:221.169.xxx.xxx 未訂閱
skyline01:richtop大大敘述的很好但你也可以使用另一種方式
處理,
就是使用
typedef struct var_type {
  char var_name[100];
  Variant value;
} Var_Type;
或
typedef struct var_type {
  AnsiString var_name;
  int value1; // float value2;
} Var_Type;
Var_Type var_vars[200]; 
等方式將你的定義變數置入,使用者輸入ABC你只要找到
var_vars[i].var_name="ABC"取出
var_vars[i].value1的值也是可以
請參考!    
Andy Chang
------
Andy Chang
系統時間:2024-06-16 21:52:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!