COSアプリケーション内のROSノード用のYAML構成ファイルを作成する必要があります。基本的に、ユーザーはパラメータ値を指定し、YAMLファイルを書き込むために値を取得します。YamlDotNetプラグインからYamlStreamをテキストファイルに保存
@Antoine Aubryの素晴らしいYamlDotNetプラグインの助けを借りてMonoDevelopを開発しています。しかし、この質問から始めて:Build a Yaml document dynamically from c#、私はYAML文書をコンソールに出力するのではなく、単純なテキストファイルに保存する方法を見つけることができません。
私はStreamWriter、TextWriter、Byte Converterを見てきました。私はここで少し失われています。 私は、私が試した最後のものは、このだったhttps://dotnetfiddle.net/0raqgN
var address = new YamlMappingNode(
new YamlScalarNode("street"), new YamlScalarNode("123 Tornado Alley\nSuite 16") { Style = YamlDotNet.Core.ScalarStyle.Literal },
new YamlScalarNode("city"), new YamlScalarNode("East Westville"),
new YamlScalarNode("state"), new YamlScalarNode("KS")
) { Anchor = "main-address" };
var stream = new YamlStream(
new YamlDocument(
new YamlMappingNode(
new YamlScalarNode("repeipt"), new YamlScalarNode("Oz-Ware Purchase Invoice"),
new YamlScalarNode("date"), new YamlScalarNode("2007-08-06"),
new YamlScalarNode("customer"), new YamlMappingNode(
new YamlScalarNode("given"), new YamlScalarNode("Dorothy"),
new YamlScalarNode("family"), new YamlScalarNode("Gale")
),
new YamlScalarNode("items"), new YamlSequenceNode(
new YamlMappingNode(
new YamlScalarNode("part_no"), new YamlScalarNode("A4786"),
new YamlScalarNode("descrip"), new YamlScalarNode("Water Bucket (Filled)"),
new YamlScalarNode("price"), new YamlScalarNode("1.47"),
new YamlScalarNode("quantity"), new YamlScalarNode("4")
),
new YamlMappingNode(
new YamlScalarNode("part_no"), new YamlScalarNode("E1628"),
new YamlScalarNode("descrip"), new YamlScalarNode("High Heeled \"Ruby\" Slippers"),
new YamlScalarNode("price"), new YamlScalarNode("100.27"),
new YamlScalarNode("quantity"), new YamlScalarNode("1")
)
),
new YamlScalarNode("bill-to"), address,
new YamlScalarNode("ship-to"), address,
new YamlScalarNode("specialDelivery"), new YamlScalarNode("Follow the Yellow Brick\nRoad to the Emerald City.\nPay no attention to the\nman behind the curtain.") { Style = YamlDotNet.Core.ScalarStyle.Literal }
)
)
);
このフィドルに、この例のコードを使用しています:
StreamWriter sw = new StreamWriter (@"/home/guillaume/test_yaml.yaml");
stream.Save (sw);
しかし、空のままでtest_yaml.yamlファイル(0オクテット)ごといまいましい時間、私はそれが次のようになりたいのに対し:これはnoobの質問のように見える場合は申し訳ありません
repeipt: Oz-Ware Purchase Invoice
date: 2007-08-06
customer:
given: Dorothy
family: Gale
items:
- part_no: A4786
descrip: Water Bucket (Filled)
price: 1.47
quantity: 4
- part_no: E1628
descrip: High Heeled "Ruby" Slippers
price: 100.27
quantity: 1
bill-to: &main-address
street: |-
123 Tornado Alley
Suite 16
city: East Westville
state: KS
ship-to: *main-address
specialDelivery: |-
Follow the Yellow Brick
Road to the Emerald City.
Pay no attention to the
man behind the curtain.
...
!
あなたが現在持っているものを表示すると役立ちます。それをコンソールに出力することができれば、文字列を作成する方法を知っていると思います。そこからは非常に簡単です。 'string text ="ヤムのもの "; File.WriteAllText(@ "C:\ txt.txt"、text); '、しかし、もう一度、あなたが既に持っているコードを提供してください。 –