0

我想将以下信息存储在文件中。我的程序由一组连接在一起形成图形的字符串组成。我称每个字符串为“标签”。

假设我们有 3 个主要标签$Mohammed, $car,$color

每个主标签都包含子标签,每个子标签都有一个值或另一个子标签或一组子标签。

$Mohammad:
    $Age: "18"
    $color: $red
    $kind_of: $human
    $car:
        $type: $toyota
        $color: $blue
        $doors:
            $number: "3"
$car:
    $made_of: $metal
    $used_for: $transporting
    $types: {$mercedes,$toyota,$nissan}
    $best_color: $red

$color:
    $usedto: $coloring_things
    $example: {$red,$green,$blue,...}

但这并不是唯一的事情,同名标签之间存在联系,因此$Mohammed->$car->$color必须与主标签相关联$color。和$Mohammed->$color:$red, $car->$best_color:$red,$color->$best_color: $red和主标签 $red 必须都相互连接。

连接的标签意味着以一种我可以立即调用连接的标签的方式存储。就像电脑内存一样。当它从内存中调用某些东西时,它会调用请求信息之前和之后的信息。

第一次看自己的情况,以为XML可以解决,后来发现XML不能表示图。

我不想为此使用数据库。我想把数据库作为我最后的武器。

关于如何存储、连接和调用程序中的信息的任何想法或建议?提前致谢。

4

2 回答 2

2

您实际上可以使用 XML,但我会推荐 JSON 或 Yaml。

您的示例格式已经非常接近 Yaml。

于 2015-02-28T22:24:05.073 回答
0

在 boost's 抢夺战利品property_tree

它包含一种很好的 c++ 方式来表示您的图形,让您非常容易地决定您想要什么样的文件表示。就是xml这样,,,jsoninfo

另外,我不明白为什么您的图形不能用 表示xml,因为它支持命名节点。

虽然property_tree也支持该ini格式,但实际上并不能代表您的 >2 级深度树。

于 2015-02-28T22:26:37.843 回答