现要把某一目录下所有的文件和目录全部转化为TREE,并对目录名,文件名进行加密,如何把新的TREE保存到表中。
表结构如下
ID PARENDID NAME INFO DIRECTORY
父结点 原名称 加密后名称 是否为目录
表结构如下
ID PARENDID NAME INFO DIRECTORY
父结点 原名称 加密后名称 是否为目录
解决方案 »
- 打印报表里面出现空数据..急..急..急..
- AdvStringGrid格式化问题
- socket的奇怪现象...
- SQL“附加数据库”成了“只读”
- 关于QuickReport分块显示记录的问题。
- 請問delphi7裡面有沒有toolbutton這樣的控件啊/
- 请问使用ISAPI写web服务器应用程序,怎么实现多人同时访问啊?
- 如何用DELPHI进行图像的分割?本人分数多多,如能解决可以再送200。
- .net 本质论
- Indy 的TIDHTTP post中,POST DATA部分包含了字符“/"怎么办?
- 请问如何当报表转化为Word格式?
- 存储过程因为使用游标处理速度很慢,Boss要我改为程序执行,还是一样子的慢,今天就要交货了,急得我想跳楼啊!!!!!!!!!!!!!!!
每找到一个文件,就向向表中插入一条记录,
ID:自增;
父结点:上层文件夹ID;
原文件名:文件名;
...
不会很难啊;
Boolean);
var
SearchRec: TSearchRec;
tempItem, ItemTemp: TTreeNode;
begin
with Tree.Items do
try
BeginUpdate;
if Directory[Length(Directory)] <> '\' then
Directory := Directory + '\';
if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
begin
if (SearchRec.Attr and faDirectory > 0) then
begin
Root := AddChild(Root, SearchRec.Name);
Root.ImageIndex := 0;
Root.SelectedIndex := 2;
end;
ItemTemp := Root.Parent;
DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);
Root := ItemTemp;
end
else if IncludeFiles then
if SearchRec.Name[1] <> '.' then
begin
tempItem := AddChild(Root, SearchRec.Name);
tempItem.ImageIndex := 1;
tempItem.SelectedIndex := 1;
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
finally
EndUpdate;
end;
Tree.TopItem.Expanded := True;
end;function GetNodePath(ANode: TTreeNode): String;
var
tempStr: String;
begin
if ANode.Parent <> nil then
tempStr := tempStr + GetNodePath(ANode.Parent);
Result := tempStr + '\' + ANode.Text;
end;DirToTreeView(newReportForm.TreeView1, ApplicationPath + 'stencil', newReportForm.TreeView1.TopItem, True);
省下的自己处理吧
其关键是要把原来的目录名和现在的目录名对应的存到表中
等到要用时可以读出这个附加值和CAPTION
PUserRecord = ^TUserRecord;
TUserRecord = Record
UserName: String;
UserID: String;
UserBM: String;
end;写procedure TMainForm.CreateUserList;
var
i: Integer;
tempStr: String;
vTempNode: TTreeNode;
UserData: PUserRecord; // 这就是写入的结构指针
begin
TreeView.Items.Clear;
vTempNode := TreeView.Items.Add(nil, '人员列表');
vTempNode.ImageIndex := 0;
vTempNode.SelectedIndex := 0; for i := 0 to UserListXML.NodeCount - 1 do
begin
New(UserData); // 在付值前一定要用New进行初始化 ^^!
tempStr := UserListXML.Get_Value(i);
UserData.UserName := ListValue(tempStr, 0, ' '); // 给结构付值
UserData.UserID := ListValue(tempStr, 1, ' ');
UserData.UserBM := ListValue(tempStr, 2, ' '); //部门(由‘/’分割,由后向前生成) vTempNode := CreateBranch(vTempNode, UserData.UserBM, TreeView);
vTempNode := TreeView.Items.AddChildObject(vTempNode, ListValue(tempStr, 0, ' '), UserData); // 这里是关键一句,你可以看看相关帮助
vTempNode.ImageIndex := 2;
vTempNode.SelectedIndex := 2; while vTempNode.Parent <> nil do
begin
if vTempNode.Parent.ImageIndex <> 3 then
vTempNode.Parent.ImageIndex := 3;
if vTempNode.Parent.SelectedIndex <> 3 then
vTempNode.Parent.SelectedIndex := 3;
vTempNode := vTempNode.Parent;
end;
end;
TreeView.TopItem.Expanded := True;
end;
读时 PUserRecord(TreeView.Items[j].Data).UserName = ListValue(UserList, i , '+}|')用这样的形式还取值会了吧省下的可以自己做了吧 ^^!分给我 hehe^^
TCusInfo=Class
custNO:string;
custName:String;
end;
procedure TForm1.Button4Click(Sender: TObject);
type aa=array of string;
var
CusInfo:TCusInfo;
TempNode:TTReeNode;
begin
CusInfo:=TCusInfo.Create;
CusInfo.custNO:='1s';
CusInfo.CustName:='a';
//赋值
TempNode:=TreeView2.items.AddChild(Nil,CusInfo.CustName);
TempNode.Data:=CusInfo;end;
为何读不出相应的DATA中的内容?
TCusInfo=Class
custNO:string;
custName:String;
end;
procedure TForm1.Button4Click(Sender: TObject);
type aa=array of string;
var
CusInfo:TCusInfo;
TempNode:TTReeNode;
begin
CusInfo:=TCusInfo.Create;
CusInfo.custNO:='1s';
CusInfo.CustName:='a';
//赋值
TempNode:=TreeView2.items.AddChild(Nil,CusInfo.CustName);
TempNode.Data:=CusInfo; CusInfo.custNO:='34';
CusInfo.CustName:='b';
//赋值
TempNode:=TreeView2.items.AddChild(Nil,CusInfo.CustName);
TempNode.Data:=CusInfo;
end;为什么用TCusInfo(TreeView2.selected.Data).custNO;读出的是最后一条?
而读不出第一条?
PMyTree=^TMyTree;
TMyTree =Record
custNO:string;
custName:String;
end;procedure TForm1.Button4Click(Sender: TObject);
type aa=array of string;
var
p : PMyTree;
TempNode:TTReeNode;
begin
New(p);
p^.custNO:='1s';
p^.CustName:='a';
TempNode:=TreeView2.items.AddChild(Nil,p.CustName);
TempNode.Data:=p;
New(p);
p^.custNO:='2s';
p^.CustName:='b';
TempNode:=TreeView2.items.AddChild(Nil,p.CustName);
TempNode.Data:=p;
New(p);
p^.custNO:='3s';
p^.CustName:='c';
TempNode:=TreeView2.items.AddChild(Nil,p.CustName);
TempNode.Data:=p;
end;procedure TForm1.Button1Click(Sender: TObject);
var
q:PMyTree;
node : ttreenode;
begin
node :=treeview2.Selected;
Q := PMyTree(node.Data );
edit1.Text:=Q^.custno;
end;