如下的字符串转换:
'11(人事管理)'#8'1101(考勤)'#8'1102(福利)'#8'12(销售管理)'#8'13(财务管理)'#8'1301(工资)'#8'1302(差旅费)'#8'14(客户管理)'#8// 它会生成如下的树:
11(人事管理)|
|-1101(考勤) //11是上级的编号
|-1102(福利) //11是上级的编号
12(销售管理)
13(财务管理)|-1301(工资) //13是上级的编号
|-1302(差旅费) //13是上级的编号
14(客户管理) 树有可能是N级的!!!!
请问该如何处理?
先谢谢了!
'11(人事管理)'#8'1101(考勤)'#8'1102(福利)'#8'12(销售管理)'#8'13(财务管理)'#8'1301(工资)'#8'1302(差旅费)'#8'14(客户管理)'#8// 它会生成如下的树:
11(人事管理)|
|-1101(考勤) //11是上级的编号
|-1102(福利) //11是上级的编号
12(销售管理)
13(财务管理)|-1301(工资) //13是上级的编号
|-1302(差旅费) //13是上级的编号
14(客户管理) 树有可能是N级的!!!!
请问该如何处理?
先谢谢了!
我要的是N层树,好象没那么简单哦?
其实我上次给你的代码改一改就行了procedure TForm1.Button1Click(Sender: TObject);
const
s = '11(人事管理)' + #8+ '1101(考勤)'+ #8 + ‘110101’ + #8 + '1102(福利)'+ #8 + '12(销售管理)'+ #8 + '13(财务管理)' + #8 + '1301(工资)'+ #8 + '1302(差旅费)' + #8 +'14(客户管理)'+ #8;
var
I, J: Integer;
StrList: TStrings;
Node, PNode: TTreeNode;
begin
StrList := TStringList.Create;
try
StrList.Text := StringReplace(s, #8, #13#10, [rfReplaceAll]);
for I := 0 to StrList.Count - 1 do
begin
for J := I - 1 downto 0 do
if Length(StrList[J]) < Length(StrLit[I]) then Break;
if J = -1 then
PNode := nil
else
PNode := StrList.Objects[J];
StrLit.Objects[I] := TreeView1.Items.AddChild(PNode, StrList[I]);
end;
finally
StrList.Free;
end;end;上面的代码只适用于你的字符串按按树的规律生成的如果次序打乱了就不行,如果还有什么问题,我下班再看现在比较忙
你可能不是学Delphi的吧!!!