Как записать древовидную структуру на диск (VBA без сериализации) - PullRequest
3 голосов
/ 15 июня 2011

Так что я использую VBA (не по выбору), чтобы сделать довольно нетривиальное программирование и считаю его кошмаром.Обычно я просто использую сериализацию, чтобы записать класс / объект на диск, а затем прочитать его обратно, но я не смогу сделать это здесь, если только я не напишу свою собственную функцию сериализации, что, в основном, я и спрашиваю, как это сделать здесь.

У меня есть класс

[Node.cls]
Public pictureName As String
Public tagGroup As String

' Collection of Node objects
Public children As New Collection

Public isOverViewScreen As Boolean

' Collections of strings
Public overViewScreenWellNames As New Collection
Public overViewScreenWellType As New Collection
Public overViewScreenOpenPictureName As New Collection

, который в основном является узлом в древовидной структуре, например, узлом с набором дочерних узлов, которые строят дерево.

Что былучший способ вывести эту структуру в плоский файл и прочитать его, какие-либо подсказки?

Я думал, что мог бы добавить родительскую ссылку ко всем моим узлам и просто рекурсивно посетить дерево, чтобы записать их в текстовый файл, а затем прочитать его таким же образом, вероятно, не самый эффективный, ноУ меня здесь хорошая четырехъядерная машина.Есть ли более простой или эффективный способ сделать это?

1 Ответ

3 голосов
/ 21 июня 2011

Написал функцию, которая рекурсивно посещает дерево и выводит «узлы» в плоский текстовый файл. Затем я написал функцию, которая считывает каждый узел обратно через конечный автомат, который читает строку за строкой, воссоздая дерево,слишком долго, но, похоже, работает нормально.

Спасибо всем, кто все равно это прочитал.

...