TstringList.sort結果有問題 |
答題得分者是:taishyang
|
pcernet
初階會員 ![]() ![]() 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
我是用BCB,用下面的code來測試,排序的結果
是如你原本的預期,先a然後再a men再來是a.c最後是z TStringList *sl = new TStringList; sl->Add("a men"); sl->Add("a"); sl->Add("z"); sl->Add("a.c"); sl->Sort(); for (int i=0; i < sl->Count; i ){ Memo1->Lines->Add(sl->Strings[i]); } delete sl;
編輯記錄
taishyang 重新編輯於 2010-05-06 14:55:51, 註解 無‧
|
pcernet
初階會員 ![]() ![]() 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
pcernet
初階會員 ![]() ![]() 發表:69 回覆:113 積分:41 註冊:2002-11-29 發送簡訊給我 |
|
Victor4022
中階會員 ![]() ![]() ![]() 發表:0 回覆:76 積分:90 註冊:2011-02-20 發送簡訊給我 |
[code delphi]
type TMySortData = class(TObject) public SIndex : String; SRowData : String; constructor Create(RowData : String); end; implementation { TMySortData } constructor TMySortData.Create(RowData: String); var iPos : Integer; begin SRowData := RowData; iPos := Pos('|', RowData); if (iPos > 0) then SIndex := Copy(RowData, 1, iPos - 1) else sIndex := RowData; end; // var I : Integer; yourSortList : TStringList;; data : TMySortData; begin yourSortList := TStringList;.Create; yourSortList .OwnerObjects := True; // only for delphi 2009 or higher, delphi 2009之前要自行free TStringList內的Objects try // 加入清單 data := TMySortData.Create('a | 1'); yourSortList .AddObject(data.SIndex, data); ... ... ... // 排序 yourSortList.Sort(); // 取出結果 for I:= 0 to yourSortList.Count - 1 do begin data := yourSortList.Objects[I] as TMySortData; ShowMessage('sorted data ' data.SRowData); end; finally FreeAndNil(yourSortList); end; [/code] |
cancer
高階會員 ![]() ![]() ![]() ![]() 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |