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

算法问题请较大侠。

尚未結案
Michael_f
一般會員


發表:24
回覆:19
積分:8
註冊:2004-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-19 10:58:16 IP:202.97.xxx.xxx 未訂閱
每条纪录有个序号,序号有一定层次性,如3.2.1(或4.3,最多3层),既有三个层次数据或两层或一层。要求实现下述功能:如下数据 3.2.1 .... 3.2.2 .... 3.2.3 .... 3.2.4 .... 3.2.5 .... 当删除某条纪录时,其序号自动跟上。如删除3.2.3后,其下一条纪录(3.2.4)的序号变为3.2.3。 Try my best!
------
Try my best!
yyu10
中階會員


發表:9
回覆:99
積分:96
註冊:2005-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-19 20:12:04 IP:220.244.xxx.xxx 未訂閱
1. Assign a weight to sequence number Assume the max number of digits for all layers is 2 (can be 1,3,...,n) '3.2.1' -> '03.02.01' '3.2.13' -> '03.02.13' '3.10.7' -> '03.10.07' '4.3' -> '04.03.00' '2' -> '02.00.00' 2. Load records into TStringList and sort lst.AddObject(SeqWeight(rec.Seq), rec); lst.Sort; 3. Delete record 'x.y.z' weight := SeqWeight('x.y.z); if lst.Find(weight, i) then begin for k := lst.Count-1 downto i 1 do TRecord(lst.Objects[k]).Seq := TRecord(lst.Objects[k-1]).Seq; TRecord(lst.Objects[i]).Free; lst.Delete(i); end; 4. To do it in database, just add a temp field 'weight' to the affected table. Load records with TTable or TADOTable, sort them by weight, then go through step 3.
系統時間:2024-07-01 5:42:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!