Boost Property Tree mit dem Dateinamen als Schlüssel

8

Ich versuche, Dateinamen als Schlüssel in boost :: PropertyTree

Aber das "." Zeichen in einem Dateinamen wie "example.txt" bewirkt, dass ein zusätzlicher Layer innerhalb des Eigenschaftsbaums hinzugefügt wird. Die naheliegendste Lösung wäre, "." mit einem anderen Zeichen, aber es gibt wahrscheinlich eine bessere Möglichkeit, dies zu tun, z. B. mit einem Escape-Zeichen.

Im folgenden Beispiel wird der Wert 10 in den Knoten 'txt', ein Kind von 'example', eingefügt. Stattdessen möchte ich, dass der Wert 10 im Knoten 'example.txt' gespeichert wird.

%Vor%

Wie kann ich den vollständigen Dateinamen für einen einzelnen Knoten verwenden?

Vielen Dank im Voraus für Ihre Hilfe!

    
Andrew Hundt 22.12.2009, 19:56
quelle

2 Antworten

6

Das Problem war, dass die Dokumentation veraltet war. Ein Pfadtyp-Objekt muss wie folgt erstellt werden, mit einem anderen Zeichen, das für Dateipfade ungültig ist, die als Trennzeichen wie folgt angegeben werden:

%Vor%

Ich fand einen Weg zu der Lösung von der Boost-Mailing-Liste in der Newsgroup gmane.comp.lib.boost.devel von Philippe Vaucher.

    
Andrew Hundt 17.02.2010, 17:34
quelle
9

Fügen Sie einfach den Baum explizit ein:

%Vor%

Die put -Methode ist nur zur Vereinfachung vorhanden, weshalb sie . automatisch als zusätzliche Ebene parst. Durch den expliziten Aufbau des value_type, wie ich oben gezeigt habe, wird dieses Problem vermieden.

Eine andere Möglichkeit, das Problem zu lösen, ist die Verwendung eines zusätzlichen Arguments in put und get , das den Delimeter ändert.

%Vor%

Für den Rekord habe ich diesen Kurs noch nie zuvor in meinem Leben benutzt. Ich habe all diese Informationen direkt von der Seite erhalten, mit der Sie verlinkt sind. )

    
Peter Alexander 22.12.2009 20:02
quelle

Tags und Links