構造を持ったテキストフォーマット


構造を持ったテキストファイルの仕様書です。

階層付テキストファイルフォーマット(TreeView?等に適用させるには、工夫が必要です。)

  • レベル1(基本)
    • ピリオドの数で階層を指定する。
    • 最低6階層はサポートする。
    • ファイルの先頭から最初の階層までは読み飛ばす。
    • 階層ピリオドは行頭から始まる。
    • 階層ピリオドの終了直後から行末までタイトル。
    • タイトルの改行直後から次の階層直前の改行までを本文。
    • 階層ピリオド前に空行があってもなくても問題ないように処理する。
    • 階層の飛びがあっても中止しないで処理する。
  • レベル2
    • タイトル先頭もしくは本文の行頭に"."のときは" ."のようにスペースを入れる。
  • レベル3
    • 階層を表す条件を正規表現で指定できる。(ピリオド以外も可能)
...Aタイトル
AAA
. .Bタイトル(Lv2タイトルにピリオドを使うときは半角スペースを)
BBB
 .BBB(Lv2本文の行頭にピリオドを使うときは半角スペースを)

....Cタイトル
CCC

木構造テキストファイルフォーマット(TreeView?等に素直に適用できます。)

  • ピリオドの数で階層を指定する。
  • 最低6階層はサポートしなければならない。
  • 最初の階層のピリオドまでコメント。
  • 最初の階層のピリオドは必ず1つ。
  • 階層には親が必要。(飛び番は許さない)
  • 階層を表すピリオドの前には空行が必要。(読み込み時に削除)
  • 階層を表すピリオドの後には半角スペースが必要。(読み込み時に削除)
  • 本文中に階層と同一の表現がある場合、前の行に半角スペースを挿入して回避。
    ※前の行が空行では無くなるために階層と見なさなくなる。
 ///// 最初のピリオドまではコメントとか署名とか日付とか
ヽ(`Д´)ノヽ(Д´ )ノヽ(´  )ノヽ(   )ノヽ(  ゚)ノヽ( ゚∀)ノヽ(゚∀゚)ノ
↓空行を忘れずに

. Aタイトル(階層を表すピリオドの後には半角スペースを必ず挿入)
A本文
. AAA(タイトルっぽいけど前の行が空行じゃないので本文)
AAA

.. .Bタイトル(タイトルにピリオドがあっても大丈夫)
B本文
 
. net(↑に半角スペース。間違えてタイトルと見なしてしまうので)
BBB

... Cタイトル
C本文

.net(改行後だしタイトルっぽいけどピリオドの後半角スペースが無いので本文)

両仕様のデータ交換ルール

  • 階層→木構造
    • 階層ピリオドの直前に空行をいれる。
    • タイトルの先頭に半角スペースを入れる。
  • 階層←木構造
    • 行頭ピリオドを使わない。

関連リンク