Galarist_00 Ответов: 1

Как сохранить содержимое treeview в txt-файл на языке C#


Привет
Я хотел бы сохранить содержимое древовидного представления в TXT-файл.
Каков самый простой способ сохранить его в txt?

Что я уже пробовал:

treeViewIn.Nodes.ToString();

TextWriter tw = new StreamWriter(@"InOrder.txt");
IList list = treeViewIn.Nodes;
     for (int i = 0; i < list.Count; i++)
          {
              string s = (string)list[i];
              tw.WriteLine(s);
          }
     tw.Close();

Richard MacCutchan

Это выглядит довольно просто.

1 Ответов

Рейтинг:
2

OriginalGriff

Здесь есть две проблемы: первая заключается в том, что treeview не является "плоским" дисплеем, он может иметь ветви, а ветви могут иметь ветви:

A
|\
| B
| |\
| | C
| D
|  \
|   E
F
Таким образом, простой цикл не является практичным способом доступа ко всем узлам для хранения. Это рекурсивная структура данных, поэтому вам нужно подумать о рекурсивном методе, чтобы получить к ней правильный доступ.

Во-вторых, нагрузка больше: плоский файл данных, такой как текстовый документ, не очень хорошо "подходит" для рекурсивных данных! Его легко хранить, но как Вы читаете его позже, чтобы восстановить исходное древовидное представление? А без этой способности вы вообще теряете время на хранение данных: если вы не можете их прочитать, то в чем смысл?

Я предлагаю вам рассмотреть один из трех методов хранения: XML-данные, JSON-данные и реляционную базу данных. Все они имеют свои преимущества и недостатки, и какой из них вам, вероятно, следует выбрать, будет зависеть от того, как вы собираетесь использовать данные и что вы ne3ed делать с ними после того, как вы их сохранили.

Но, честно говоря, вы, вероятно, делаете это неправильно: проектирование хранилища данных на основе того, как вы его отображаете, почти наверняка является ошибкой; данные слишком важны, чтобы оставлять их в прошлом!


Galarist_00

Мне удалось сохранить его в текстовый файл:

Я добавил содержимое древовидного представления сначала в список, а затем сохранил его из списка в txt-файл.

OriginalGriff

Теперь восстановите древовидное представление только из этого файла...

Graeme_Grant

Я бы сделал это так же, как вы бы сохранили рекурсивную структуру в таблице(таблицах) БД... Я должен признать, что без знания конкретной структуры данных, которые будут храниться, трудно дать четкий ответ...

OriginalGriff

Это так - но делать это вручную БД в текстовом файле - это большая работа-я бы вместо этого пошел с XML или JSON, поскольку он делает "тяжелую работу" для вас.

Graeme_Grant

Да, то же самое... Xml, JSON, CSV и т. д. Для этого есть lib! ;)