6-16-15)スライド前ロールのデータ構造

==============================================
<スライド前ロールのデータ構造>
スライド前ロールは、テキストデータで、複数のカンマで区切られた行からなる。
カンマで区切られた部分を「カラム」と呼ぶ。

各行の始まりが半角「−」の時、ページの始まりと判断して、次のページが始まるまでを1つのページ(スライド)として表示する。
0カラム目が半角の「−」で始まっている行は、ページ指示行である。
0カラム目がそれ以外の行は、行指示行である。

1)ページ指示行の構造(各指示値は半角カンマで区切る)
 0]page title (行頭は「-」)
 1]背景色(null:同じ色で消す/stay:消さない/clWhite:白/clBlack:黒/整数:RGB数値)
 2]背景画名(null:何もしない/「同じ」:前と同じ背景画で消す/ファイル名:その背景画で消す)
 3]横位置(null:動かさない/整数:x座標ドット数)
 4]縦位置(null:動かさない/整数:y座標ドット数)
 5]横長さ(null:動かさない/整数:幅ドット数)
 6]縦長さ(null:動かさない/整数:高さドット数)
 7]動画の指定(null:何もしない/ファイル名:読み込む)
 8]動画の操作(null:何もしない/play:再生/stop:停止/prev:巻き戻し/pause:一時停止)
 9]動画の横位置(null:動かさない/整数:x座標ドット数)
 10]動画の縦位置(null:動かさない/整数:y座標ドット数)
 11]動画の高さ(null:動かさない/整数:高さドット数)
 12]動画の幅(null:動かさない/整数:幅ドット数)
 13]時刻 (null:なし/時:分:秒:ミリ秒)


2)行指示行の構造(各指示値は、半角カンマで区切る)
注意:「前行」とは、行横位置、行縦位置で「o」指定していない行までさかのぼる。つまり「ルビ行」は「前行」にはならない。

 0]文章(null:不可。空白に置き換える。/[ 8]がnullでない時は、挿入画のファイル名として処理)
 1]行横位置(null:前行と同じ/ r+数値(小数点可):縦書時の改行数/o+整数:前行との相対ドット数/c:前行に続けて/整数:x座標ドット数)
 2]行縦位置(null:前行と同じ/ r+数値(小数点可):横書時の改行数/o+整数:前行との相対ドット数/整数:y座標ドット数)
 3]fontサイズ(null:前行と同じ/整数:ポイント数)
 4]font色(null:前行と同じ/clRed:赤/clYellow:黄/clBlue:青/clWhite:白/clBlack:黒/整数:RGB数値)
 5]縁取り色(null:縁取り無し/c:前行と同じ、[6]も同じとして処理/整数:RGB数値、[6]を幅として処理)
 6]縁取り幅(整数:幅ドット数)
 7]行の回転角度(null:横書き/j:縦書き/整数:角度の10倍の数値。反時計回り)
 8]挿入画の表示幅(null:[0]を文章として処理/整数:挿入画の幅ドット数、[0]を挿入画として読込む、[9]を高さとして処理)
  9]挿入画の表示高さ(整数:挿入画の高さドット数)
 10]font名(null:前行と同じ/フォント名:「MS Pゴシック」や「@MS Pゴシック」など)

==============================================
<テキスト型スライド前ロールのデータ構造  (030518作成/040809更新)>
テキスト型スライド前ロールは、複数のカンマで区切られた行からなり、前半の「設定部」と後半の「本文」に分かれている。
「設定部」は、0カラムが「$設定$」で、それ以外は「本文」である。
「設定部」は、規定値やそれを適用して読み込む動作の指示が記述されている。
「本文」は、「ページ指示行」と、それに続く「行指示行」の繰り返しで構成されている。
「ページ指示行」は、「設定部」の「ページ区切り記号」で指定された文字列が0カラムに入っている。(ディフォルトは、null)
「ページ指示行」をページの始まりと判断し、次の「ページ指示行」までは、1つのページ(スライド)として表示する。

「保存」は、「作成・修正」ページの「規定値」ページの値が「設定部」に保存される。
「読込」は、「設定部」の規定値を「規定値」ページに展開してから、それに従いスライド前ロールにする。

1)設定行の構造(各指示値は半角カンマで区切る)
 0]$設定$ (読込の判定は、「$」のみで行っている。)
 1]指示番号(1000は、コメントとして何も処理しない。1999は、設定部を読込処理するコマンド))
 2]指示値
 3]コメント

2)ページ指示行の構造(各指示値は半角カンマで区切る)
 0]ページ区切り記号 (ディフォルとはnull、設定部の1403番で指定する。)
 1]時間指定(「全体」ページで指定した時間。無い時は、nullとなる。)
 2]ページタイトル(キャレット前ロールからスライド前ロールに変換時の中間的なテキスト前ロールで使っている。9sでは無効)

3)行指定行の構造(各指示値は半角カンマで区切る)
 0]文
 1]ルビの指定(null:通常行として規定値を適用。/「ルビ」:設定部で指定したルビ規定値を適用して読み込む/「連結」:キャレット前ロール用)
 2]フォント色(null:設定部で指定した規定値を適用//clRed:赤/clYellow:黄/clBlue:青/clWhite:白/clBlack:黒/整数:RGB数値)

 (フォント色の指定のnullの動作に注意する事。)
1カラムが「連結」の場合は、次のようにスライド前ロールに変換します。
「横書き」の場合は、その行は、横位置:c(続ける)、縦位置:null(同じ)として処理する。
「縦書き」の場合は、その行は、横位置:null(同じ)、縦位置:c(続ける)として処理する。


==============================================
<キャレット型スライド前ロールのデータ構造  (040807作成/040809更新)>
キャレット型スライド前ロールは、テキスト型スライド前ロールの本文のみからなる。
「本文」は、「ページ指示行」と、それに続く「行指示行」の繰り返しで構成されている。
「ページ指示行」は、固定的に「/」が0カラムに入っている。
「ページ指示行」をページの始まりと判断し、次の「ページ指示行」までは、1つのページ(スライド)として表示する。

1)ページ指示行の構造(各指示値は半角カンマで区切る)
 0]「/」(ページ区切り記号)
 1]時間指定(「全体」ページで指定した時間。無い時は、nullとなる。) *予約

2)行指定行の構造(各指示値は半角カンマで区切る)
 0]文
 1]行書式記号または「ルビ」(null:通常行として書式を適用。/行書式記号:書式に指定さたれ文字色と文字大きさを適用して読み込む/「ルビ」:テキスト形式に変換する時に行をそのまま渡す(従来のルビ行))


<テキスト形式への変換>
1)キャレット前ロールの「さて^今日[きょう]は、」というルビ付きの文は、以下のようなテキスト前ロールに分解してから、スライド前ロールに変換します。
-----------------
さて,,
今日,連結,
きょう,ルビ,
は,連結,
-----------------

2)行頭が半角の「<-」の行は、コメント行として変換しない。
3)ルビ部のフォント大きさは、書式記号ではな「ルビ行書式」の文字の大きさが適用されます。
4)行頭が半角の「$」の行は「テキスト前ロール」の添付規定値行のため無視します。
5)「スライド前ロールのタイトルを^[ ]を除いて作成」のチェックを入れた場合に、テキスト前ロールのページ指示行の3カラム目を次のように使用する。040809
キャレット前ロールから中間的に作成するテキスト前ロールを作成する時に、テキスト前ロールのページ指示行の3カラム目に、「^[ ]」で追加したルビを省略して作ったページタイトルを入れ、そのタイトルでスライド前ロールのページ指示行を作成する。
これは、 ^[ ]を使ってルビを付けると、スライド前ロールにした時に、目次のタイトルがルビを付けている漢字までになってしまうため、先頭行を全部タイトルになるようにした。


<使用できない文字>
文中の半角のカンマ「、」はエラーになります。
行頭の半角のハイフォン「−」は、スライド前ロールのページ区切り記号のため、使えません。