//这一段是把文件读出,形成树
procedure TForm1.Button3Click(Sender: TObject);
Var
F:Integer;
i,j:integer;
CurrentNode:TTreeNode;
ChildNode:TTreeNode;
ChildCount:integer;
Nowx,Nowy:integer;
begin
TreeView1.Items.Clear ;
F:=FileOpen('main.RGN',fmOpenRead);
if F<0 then exit;
FileRead(F,RegionCount,sizeof(integer));
for i:=1 to RegionCount do begin
FileRead(F,childcount,sizeof(integer));
//这一段是记录树的数据.
procedure TForm1.Button2Click(Sender: TObject);
Var
F:Integer;
i,j:integer;
CurrentNode:TTreeNode;
ChildNode:TTreeNode;
ChildCount:integer;
begin
F:=FileCreate('main.RGN');
if F<0 then exit;
Filewrite(F,RegionCount,sizeof(integer));
CurrentNode:=TreeView1.Items.GetFirstNode;
for i:=1 to RegionCount do begin
Childcount:=currentNode.Count ;
Filewrite(F,ChildCount,sizeof(integer));
FileWrite(F,PPoint(CurrentNode.data)^.x,sizeof(integer));
FileWrite(F,PPoint(CurrentNode.data)^.y,sizeof(integer));
ChildNode:=CurrentNode.getFirstChild ;
for j:=0 to CurrentNode.Count-1 do begin
fileWrite(F,PPoint(ChildNode.data)^.x,sizeof(integer));
FileWrite(F,PPoint(ChildNode.data)^.y,sizeof(integer));
ChildNode:=childNode.getNextSibling;
end;
CurrentNode:=CurrentNode.getNextSibling ;
end;
FileClose(F);
end;
Fileread(F,Nowx,sizeof(integer));
FileRead(F,Nowy,sizeof(integer));
CurrentNode:=TreeView1.Items.Add(nil,format('x:%d,y:%d',[Nowx,nowy]));
for j:=0 to ChildCount-1 do begin
Fileread(F,Nowx,sizeof(integer));
FileRead(F,Nowy,sizeof(integer));
childNode:=TreeView1.items.Addchild(CurrentNode,format('x:%d,y:%d',[Nowx,nowy]));
end;
end;
FileClose(F);