Hallo Philippe,
es wäre natürlich toll, wenn die Pfadnamen in der StringList bereits in dem Format vorliegen würden, welches die TreeView selbst als Textrepräsentation kennt, aber ausgehend von deinen Beispieldaten kannst du so vorgehen:
Delphi-Quellcode:
function PathToNode(s: string; tn: TTreeNodes): TTreeNode;
var
dir, subDir: string;
begin
dir := ExcludeTrailingPathDelimiter(s);
subDir := ExtractFileName(dir);
dir := ExtractFileDir(dir);
if dir = ''
then Result := tn.AddChild(nil, subDir)
else Result := tn.AddChild(PathToNode(dir, tn), subDir)
end;
procedure PathesToNodes(s: TStrings; tn: TTreeNodes);
var
i: Integer;
begin
for i := 0 to Pred(s.Count) do
PathToNode(s[i], tn);
end;
procedure TDemoForm.ButtonClick(Sender: TObject);
var
i: Integer;
sl: TStringList;
begin
sl := TStringList.Create;
sl.Assign(Memo.Lines);
sl.Sorted := True;
for i := sl.Count - 2 downto 0 do
if AnsiStartsText(sl[i], sl[Succ(i)]) then
sl.Delete(i);
TreeView.Items.Clear;
PathesToNodes(sl, TreeView.Items);
sl.Free;
end;
Freundliche Grüße