CSVOとYAML
前回の記事(CSVOの表現力 - はじめてのフォーマット)の最後のほうで 行/列を入れ替えたCSVOデータを貼りましたが、YAMLに似ていると感じませんでしたか?
再掲
CSVOはもともと、VBAで業務ツールを作っていたときに、 設定情報をYAMLのような形式でワークシート上で管理できないか、 と考えたところから始まりました。
では、下のYAMLデータをCSVO形式に変換してみましょう。 (データはYAML Ain’t Markup Language (YAML™) Version 1.2のExample 2.27.を改変したもの)
invoice: 34843 date : 2001-01-23 bill-to: given : Chris family : Dumars address: lines: - 458 Walkman Dr. - Suite #292 city : Royal Oak state : MI postal : 48046 product: - sku : BL394D quantity : 4 description : Basketball price : 450.00 - sku : BL4438H quantity : 1 description : Super Hoop price : 2392.00 tax : 251.42 total: 4443.52 comments: - Late afternoon is best. - Backup contact is Nancy - Billsmer @ 338-4338.
スペースをタブにして貼り付けます。
値を一列にまとめます。
ネスト時の改行を無くして リストのマークを*に変えて完成です。
行/列を入れ替えたものと 出力したテキストデータも貼っておきましょう。
invoice:,date:,bill-to:,,,,,,,product:,,,,,,,,tax:,total:,comments:,, ,,given:,family:,address:,,,,,*,,,,*,,,,,,*,*,* ,,,,lines:,,city:,state:,postal:,sku:,quantity:,description:,price:,sku:,quantity:,description:,price:,,,,, ,,,,*,*,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, 34843,2001-01-23,Chris,Dumars,458 Walkman Dr.,Suite #292,Royal Oak,MI,48046,BL394D,4,Basketball,450,BL4438H,1,Super Hoop,2392,251.42,4443.52,Late afternoon is best.,Backup contact is Nancy,Billsmer @ 338-4338.