樹狀結構文件編輯器 V2.3 |
|
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
TreeDocEditor改版後加入下面幾項實用功能,感謝大家熱心提供建議...
相關說明仍見於sample.tsd裡。 相關連結網址
編輯記錄
00156 重新編輯於 2011-02-05 12:10:38, 註解 無‧
| ||||
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
為了方便有興趣的人可以加強功能或轉換檔案,下面是TSD檔案的格式供大家參考... TSD檔案格式
TSD檔案由數個片段所組成,第一個片段為樹狀結構的內容,其餘各片段依序為該樹狀各個節點的資料內容。 每個片段包含前4 bytes的容量紀錄與後面的資料內容兩部分。 容量紀錄部分是一個integer(32-bit)型態,紀錄著後面資料內容的大小(bytes)。 片段格式:
|
||||
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
以下是存取TSD檔案的獨立程序...
procedure SaveToTSDFile(var FromTreeView:TTreeView; AFileName:TFileName); var TreeStream,Buffer:TMemoryStream; size,i,j:LongInt; begin TreeStream:=TMemoryStream.Create; Buffer:=TMemoryStream.Create; try FromTreeView.SaveToStream(TreeStream); size:=TreeStream.Size; Buffer.Write(size,SizeOf(size)); Buffer.CopyFrom(TreeStream,0); for i:=0 to FromTreeView.Items.Count-1 do begin if FromTreeView.Items[i].Data<>nil then size:=Length(String(FromTreeView.Items[i].Data^)) else size:=0; Buffer.Write(size,SizeOf(size)); if size>0 then begin //不知為何要一個個字元寫入才行??? for j:=1 to Length(String(FromTreeView.Items[i].Data^)) do Buffer.Write(String(FromTreeView.Items[i].Data^)[j],1); end; end; Buffer.SaveToFile(AFileName); finally Buffer.Free; TreeStream.Free; end; end; procedure LoadFromTSDFile(AFileName:TFileName; var ToTreeView:TTreeView); var TreeStream,Buffer:TMemoryStream; size,i,j:LongInt; p:^string; a:char; begin TreeStream:=TMemoryStream.Create; Buffer:=TMemoryStream.Create; try Buffer.LoadFromFile(AFileName); Buffer.Read(size,SizeOf(size)); TreeStream.CopyFrom(Buffer,size); TreeStream.Position:=0; ToTreeView.LoadFromStream(TreeStream); for i:=0 to ToTreeView.Items.Count-1 do begin Buffer.Read(size,SizeOf(size)); New(p); ToTreeView.Items[i].Data:=p; for j:=1 to size do //不知為何要一個個字元讀出才行??? begin Buffer.Read(a,1); String(ToTreeView.Items[i].Data^):=String(ToTreeView.Items[i].Data^) a; end; end; finally Buffer.Free; TreeStream.Free; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |