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

請教TList 排序

 
kjwang
一般會員


發表:11
回覆:8
積分:3
註冊:2005-04-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-07-10 10:06:41 IP:210.201.xxx.xxx 訂閱

請問我在程式當中抓Database資料然後以TList來存放,

並在每存一筆資料的同時,用TStringList抓某個欄位用string型態來當該筆資料的index存放

然後之後我在做一些判斷處理時會回頭用到TList中存放的資料

不過我希望的是能確保TList裡的資料是要Sort過的,才能按順序逐筆向下搜尋

不知道TList裡的Sort function是怎麼使用呢? 因為TList裡存放的是point指標嗎, 這樣要如何sort呢?

而TStringList存的是string型態就可以直接Sort嗎?

但這樣就不能確保TList和TStringList的資料一定是同樣的排序方式(因為我要用TStringList當index取Tlist資料)

謝謝!

carl168
一般會員


發表:7
回覆:16
積分:4
註冊:2004-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-07-10 10:46:53 IP:211.20.xxx.xxx 未訂閱

不好意思,提出我個人的看法:

你要將資料同時存放兩個位置:Database & TList

不是不可以,而是不保險,除非你的程式是非常嚴謹。

建議你還是以Database為主,

需要檢核的部份,用一個副程式去Database找出資料做檢核即可。

borland_delphi70
中階會員


發表:8
回覆:50
積分:51
註冊:2002-12-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-11 23:51:21 IP:220.132.xxx.xxx 未訂閱

既然用了TStrings就不用再用TList了,因為TStrings的每一筆資料均包含一個字串與一個Pointer

vStr: tStrings;

vStr:=tStringList.Create;

vStr.Strings[x] ..... 可以存字串

vStr.Objects[x] .... 可以存物件之 pointer

將資料存入TStrings之後再 sort 反而會變慢,你如果以某一字串欄位當 key 值,存在vStr.Strings[x]中,應再存入前先以二分搜尋法比對,找到適當之位置後,再以vStr.Insert(i_Idx,s_Key)存入字串,同時以vStr.InsertObject(i_Idx,p_Pointer),才會比較簡潔。

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