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

判斷edit1.text裡輸入的內容

尚未結案
jayshen
一般會員


發表:10
回覆:7
積分:3
註冊:2006-11-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-22 08:52:15 IP:211.74.xxx.xxx 未訂閱
假設我想要判斷edit1.text裡輸入的內容只能符合以下的function和範圍:如下: FUNC01 A09 ? TRUR (function和範圍都符合) FUNC04 ? FALSE (沒有此function) FUNC01 D09 ? FALSE (FUNC01不能使用D) FUNC01 C50 ? FALSE (超出範圍) ………………………………………….. 假設A 的範圍為: 0-100 B 的範圍為: 0-500 C 的範圍為: 200-600 D 的範圍為: 0-100 E 的範圍為: 300-800 FUNC01 只能使用A,B,C FUNC02 只能使用 C,D,E FUNC03 只能使用 B,D 這樣子的演算法要如何寫呢 ? (另外有些function 裡可能會有多個參數 ,如FUNC03 B20 D5 ---> true )
jayshen
一般會員


發表:10
回覆:7
積分:3
註冊:2006-11-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-22 13:13:16 IP:211.74.xxx.xxx 未訂閱
抱歉,可能我描述的不夠清楚,我再重新說明一下好了: 假設我有10個function 分別為 Func01 , Func02 …. Func10 ,而每個function 所要傳入的參數不同,可能為 : Func01 A0 (有的function 只可存放一個參數) Func01 B5 Func02 A2 C9 (有的function可以存放多個參數) Func02 A0 B5 Func03 C2 D5 A9 ……………………… 每個function 存放的參數數目是固定的,如Func01 只能存放一個參數,而Finc02 固定存放二個參數,但是Func01存放的參數可以為A0~A9 或 B0~B9 , Func01 存放的參數可以為A10~A20 或 C0~C9 或 D10~D99 ,且Func01的參數A和Func02的參數A範圍是不同的。 現在我想要判斷TEXT1.TEXT裡輸入的內容只能符合以上的function和參數和範圍,要怎麼寫呢? 謝謝 ~
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-22 13:35:46 IP:61.70.xxx.xxx 未訂閱
您好: 這問題沒人回覆應該就是不太曉得您要做什麼,程式的寫法不是只有一個方向寫,小弟我就感覺定義這樣10個函式滿奇怪的,但又不知道您要做什麼. 如果您要傳入資料範圍可以這樣做看看: 1.把前面的A,B,C....先去掉,得到數值 2.使用in來判斷 num:=7;//假設是數字是7 if (num in [0..100]) And (S='A')then FUNC01(num); ps.不要一文多發. 發表人 - supman 於 2005/04/22 13:37:16
mine
中階會員


發表:28
回覆:129
積分:56
註冊:2004-03-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-04-24 22:56:57 IP:219.71.xxx.xxx 未訂閱
hihi 你好 如同supman兄所言,不太清楚你要的功能 作一下假設, 如果Edit1.Text所輸入的值是合法參數,就將該參數傳遞給特定函式 如果為非,則告訴使用者錯誤訊息:假設無誤 定義十個函式之參數宣告 Ax (x表數字)則代入第一函式 Bx Bx 則第代入第二函式 以此類推 以pos或copy 函式抓取第一字元 合法 則引入函式 並要求函式作第二次判斷 不合法送Message 並Exit; 如果以上無誤 可以先用集合或陣列事先定義參數範圍 ?需於Edit1.text 判斷第一字元的合法性利用Trim(edit1.text)取回參數檔 頭後所帶之參數範圍 Ex:
if copy(Trim(Edit1.text),0,1)=B then begin或用Case或用集合
 try 
  if strtoint(copy(trim(edit1.text),1,length(trimedit1.text)-1))>50   
  then
   Showmesage('參數超出範圍')
  else
   function1(Trim(Edit1.text));
 except
  showmessage('函式一所導入之參數有誤');
 end;
end else
  尋找其他函式之參數檔頭定義; 
end;
如果supman兄所言 這樣的要求達成方法不僅一種 其餘再作變化 希望推論無誤且對你有幫助 再看了一次,發現假設的跟supman跟本就沒二樣 真歹勢,當成純插花的好了QQ 搞不懂!搞不懂!永遠都搞不懂!! 發表人 - mine 於 2005/04/24 23:08:51
mine
中階會員


發表:28
回覆:129
積分:56
註冊:2004-03-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-02 14:59:36 IP:61.221.xxx.xxx 未訂閱
如果你只是要使用動態function的作法 建議你可以參考SynEdit作者的程式寫作 搞不懂!搞不懂!永遠都搞不懂!!
系統時間:2024-06-02 0:53:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!