Показать сообщение отдельно
  #2  
Старый 14.09.2013, 04:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Wervolfe
Добрый день всем. Необходимы исходники примера, чтобы сохранить дерево с данными (string и integer) в файл и восстановление из файла.

Примеры все посмотрел, перелистал все поисковики, сижу ночами уже несколько дней, но разобраться не могу, так как я не программист. В готовом примере смогу разобраться. Заранее спасибо.

Зависит от того, как у тебя храняться данные в дереве.
В принципе, т.к. xml это, по сути, тексовый файл, то можно сохранять очень просто:
Код:
procedure SaveTreeToXML(ATree : TTreeView; AFilaName : String);

  procedure SaveNode(ANode : TTreeNode; AList : TStringList);
  var
    I : Integer;
  begin
    AList.Add('<Node value="' + ANode.Caption + '">');
    For I := 0 To Node.Items.Count-1 Do
      SaveNode(Node.Items[i],AList);
    AList.Add('</Node>');
  end;

var
  I : Integer;
  L : TStringList; // Для простоты сохраняем в список
begin
  L : TStringList.Create;
  L.Add('<Tree>');
  For I := 0 To TreeView.Items.Count-1 Do
    If TreView.Items[i].Parent = Nil Then
      SaveNode(TreView.Items[i],L);
  L.Add('</Tree'>);
  L.SaveToFile(AFilaName);
  L.Free;
end;

С чтением чуть сложнее, но тоже не сложно. Просто читаешь строчку и принимаешь решение, что делать.

Если стукрура данных сложнее, то рекомендую работать с TXMLDocument. По сути, это то же дерево, так что построить одно дерево по другому не так и сложно.
Ответить с цитированием