gpt4 book ai didi

Delphi:根据文件名称在 TreeView 中创建文件树

转载 作者:行者123 更新时间:2023-12-02 03:00:22 25 4
gpt4 key购买 nike

我有一个文件字符串列表和一个日期作为其名称(分隔符可以不同:“-|.”;掩码:yyyy/mm/dd):

2011-03-12.jpeg2011|10-15.doc2011.08-09.rar2011.10-15.txt2011-03-14.jpeg2011.06.23.mp32011|07|01.zip2011-07-05.rar

如何使用它们创建 TreeView ?所有文件必须按月份和日期排序+分配到月份部分,例如:

enter image description here

非常感谢您的帮助!!!

最佳答案

由于您已经填充了 TStringList,我只需使用其 CustomSort() 方法对其进行排序,然后您可以循环遍历它,将节点添加到树中根据需要,例如:

function SortFilesByMonthAndDay(List: TStringList; Index1, Index2: Integer): Integer;
var
Value1, Value2: Integer;
begin
Value1 := StrToInt(Copy(List[Index1], 6, 2));
Value2 := StrToInt(Copy(List[Index2], 6, 2));
if Value1 = Value2 then
begin
Value1 := StrToInt(Copy(List[Index1], 9, 2));
Value2 := StrToInt(Copy(List[Index2], 9, 2));
end;
Result := Value2 - Value1;
end;

var
I: Integer;
FileMonth, CurrentMonth: Integer;
CurrentMonthNode: TTreeNode;
begin
CurrentMonth := 0;
CurrentMonthNode := nil;
Files.CustomSort(@SortFilesByMonthAndDay);
for I := 0 to Files.Count-1 do
begin
FileMonth := StrToInt(Copy(Files[I], 6, 2));
if FileMonth <> CurrentMonth then
begin
CurrentMonth := FileMonth;
CurrentMonthNode := TreeView1.Items.Add(nil, SysUtils.LongMonthNames[CurrentMonth]);
end;
TreeView1.Items.AddChild(CurrentMonthNode, Files[I]);
end;
end;

关于Delphi:根据文件名称在 TreeView 中创建文件树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8660546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com