算法问题请较大侠。 |
尚未結案
|
Michael_f
一般會員 發表:24 回覆:19 積分:8 註冊:2004-08-27 發送簡訊給我 |
|
yyu10
中階會員 發表:9 回覆:99 積分:96 註冊:2005-02-18 發送簡訊給我 |
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.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |