mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 13:50:06 +02:00
Converter: Improve saving and loading StringToStringTree to/from config.
git-svn-id: trunk@26230 -
This commit is contained in:
parent
52bf35cbe2
commit
88536343f0
@ -146,9 +146,9 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
Tree.Clear;
|
Tree.Clear;
|
||||||
Cnt:=Config.GetValue(Path+'Count',0);
|
Cnt:=Config.GetValue(Path+'/'+'Count',0);
|
||||||
for i:=0 to Cnt-1 do begin
|
for i:=0 to Cnt-1 do begin
|
||||||
SubPath:=Path+'Item'+IntToStr(i)+'/';
|
SubPath:=Path+'/'+'Item'+IntToStr(i)+'/';
|
||||||
CurName:=Config.GetValue(SubPath+'Name','');
|
CurName:=Config.GetValue(SubPath+'Name','');
|
||||||
CurValue:=Config.GetValue(SubPath+'Value','');
|
CurValue:=Config.GetValue(SubPath+'Value','');
|
||||||
Tree[CurName]:=CurValue;
|
Tree[CurName]:=CurValue;
|
||||||
@ -163,19 +163,20 @@ var
|
|||||||
i, j: Integer;
|
i, j: Integer;
|
||||||
SubPath: String;
|
SubPath: String;
|
||||||
begin
|
begin
|
||||||
Config.SetDeleteValue(Path+'Count',Tree.Tree.Count,0);
|
Config.SetDeleteValue(Path+'/'+'Count',Tree.Tree.Count,0);
|
||||||
Node:=Tree.Tree.FindLowest;
|
Node:=Tree.Tree.FindLowest;
|
||||||
i:=0;
|
i:=0;
|
||||||
while Node<>nil do begin
|
while Node<>nil do begin
|
||||||
Item:=PStringToStringTreeItem(Node.Data);
|
Item:=PStringToStringTreeItem(Node.Data);
|
||||||
SubPath:=Path+'Item'+IntToStr(i)+'/';
|
SubPath:=Path+'/'+'Item'+IntToStr(i)+'/';
|
||||||
Config.SetDeleteValue(SubPath+'Name',Item^.Name,'');
|
Config.SetDeleteValue(SubPath+'Name',Item^.Name,'');
|
||||||
Config.SetDeleteValue(SubPath+'Value',Item^.Value,'');
|
Config.SetDeleteValue(SubPath+'Value',Item^.Value,'');
|
||||||
Node:=Tree.Tree.FindSuccessor(Node);
|
Node:=Tree.Tree.FindSuccessor(Node);
|
||||||
inc(i);
|
inc(i);
|
||||||
end;
|
end;
|
||||||
|
// Remove leftover items in case the list has become shorter.
|
||||||
for j:=i to i+10 do begin
|
for j:=i to i+10 do begin
|
||||||
SubPath:=Path+'Item'+IntToStr(j)+'/';
|
SubPath:=Path+'/'+'Item'+IntToStr(j)+'/';
|
||||||
Config.DeletePath(SubPath);
|
Config.DeletePath(SubPath);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user