全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1225
推到 Plurk!
推到 Facebook!

請教數組相關問題 in 的用法

答題得分者是:hagar
soulin12
一般會員


發表:22
回覆:21
積分:8
註冊:2003-05-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-27 15:23:34 IP:61.145.xxx.xxx 未訂閱
aa:string ; MyArray : Array[0..20] of string ; if aa in MyArray then {此句的語法應該怎樣寫,我這樣的寫法肯定是錯誤的} begin end; 我的目的是只要 AA 屬于 MyArray 中的任何一個值即為 True ,哪位高手幫忙解決一下,我是初學者
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-27 15:33:12 IP:202.39.xxx.xxx 未訂閱
另一種想法, 把 MyArray 改用 TStringList 來做 然後用 TStringList.IndexOf 來看有沒有符合的.    --- 每個人都是一本書
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-27 15:38:57 IP:210.241.xxx.xxx 未訂閱
可以直接跑loop 來判斷嗎 for i = 0 to 20 then begin if MyArray[i] := aa bfind := true end;
soulin12
一般會員


發表:22
回覆:21
積分:8
註冊:2003-05-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-27 15:56:14 IP:61.145.xxx.xxx 未訂閱
Hi turboted : 用 Loop 确實可以解決這個問題,但沒有效率了,我外面是還有一個循環的 倒是 hagar 說得對,可我找不到這個控件呢,在哪里呢?我以前是見過的
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-27 16:06:48 IP:202.39.xxx.xxx 未訂閱
uses Classes;    var sl: TStringList;
  i, idx: integer;
begin
  aa := '15';
  sl := TStringList.Create;
  try
    for i := 1 to 20 do
      sl.Add(IntToStr(i));
    idx := sl.IndexOf(aa);
    if idx = -1 then
      ShowMessage(aa + ' 不在裏面')
    else
      ShowMessage(aa + ' 在第 ' + IntToStr(idx+1) + ' 個);
  finally
    sl.Free;
  end;
end;
--- 每個人都是一本書
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-27 18:58:30 IP:61.10.xxx.xxx 未訂閱
補充一下 一般來說 用 loop 的方法應比 TStringList 有效率,而且可合用於各種形態的數據。 但 TStringList 真的方便又多功能所以我也多數會用 TStringList 來處理類似的事,亦同意 hagar 版主建議使用 TStringList。 只是想說明 loop 並非效率轉差。
系統時間:2024-11-24 21:12:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!