HTML Creator
シェアウェア
制作者:秀麗 - Labyrinthe Noir - e-mail
このソフトは日々データを更新する商品データベースの内容をホームページにカタログとして表示するために開発しました。
データベースを組み合わせ、テキストファイルの定型文書を自動作成することができます。
CGIを使った場合、自前のサーバーならリアルタイムに情報を更新することができますが、そうでなければデータベースからCSVファイルを出力して、アップロードするしかありません。
データの検索が必要なければ、CGIを使ってデータを表示させるのは余計な手間とも考えられます。
そこで、抜き出したCSVファイルからHTMLファイルを成型してしまえば、簡易で軽快なカタログとして公開することができます。
さらに、Text2HTMLでは、商品の一覧と各商品毎のHTMLファイルを作成することができます。
一覧形式では1つのHTMLファイルに各商品データを連続して書き出します。
各商品別ファイルは一覧からリンクして開くようにしておくと便利です。各商品毎のファイル名も出力時に自動作成してくれます。
テンプレートを自由に作成し、様々な用途の定型文書とデータベースを関連づけることが可能になるのです。
専用の処理コードを記述したテンプレートを作成することで、複雑な自動処理を実行し、簡易な検索機能によって柔軟に定型文書の自動作成を行うことが可能です。
Text2HTMLでは、次の3つのファイルを扱います。(詳細は後述します)
検索機能を組み合わせることで、条件に合致したレコードだけを出力することも可能です。
基本的な機能はテンプレートにCSVファイルのデータを流し込み、HTMLファイルなどの定型文書を出力します。
商品データベースの場合、1つの商品が1つのレコード、商品の名称や価格などがフィールド(項目)に収まっています。
テンプレートには何番のフィールドがどこに当てはまるかが記されています。
シングルモードでは、レコード毎にHTMLファイルを出力し、リピートモードではレコード毎に一部分を繰り返して転記したファイルを出力します。
フィールド指定コードをテンプレート内に記述しておき、フィールドデータを指定の位置に置き換えていく、Text2HTMLの基本機能です。
差込処理とも呼び、テンプレート内の挿入位置にフィールド番号を指示するためのフィールド指定コードを記述して置くことで、必要な位置にデータベースから取り出した任意のフィールドデータを挿入して文書を作成することができます。
同じフィールド指定コードを複数記述することも可能です。
シングルモードは、CSVファイルの各レコードを1つのHTMLファイルとして出力する機能です。
ファイル名も選択したフィールドや、順次番号を付加して自動的に作成されます。
リピートモードは、CSVファイルの全レコードを1つのHTMLファイルとして出力する機能です。
各レコードは共通の繰返パターンで処理されることで、連続してHTML内に出力される仕組みです。
主として、<TABLE>タグを使った表作成に向いています。
表内の各行にレコードを割り当てて、その範囲を繰り返して処理します。各行には(レコードの異なる)同じフィールドが挿入されます。
(リピートモードのみ)
繰り返しレコードを挿入する間に見出しとなる行を挿入することができます。
任意のフィールドを1つ指定し、そのフィールドの値が変化したときに見出しを挿入します。
任意のフィールドを1つ指定し、そのフィールドが条件を満たすレコードだけを出力します。
条件には、全部一致、全部不一致、部分一致、部分不一致、前方一致、後方一致、数値一致、数値不一致、数値超、数値未満、数値以上、数値以下があります。
任意のフィールドを1つ指定し、そのフィールドが条件を満たす場合にテンプレートの指定範囲を表示するように指示できます。
指定範囲には、任意の文字列やフィールド指定コードを含むことができます。
条件によって表示・非表示、または2つの表示の切り替えをすることができます。
出力処理時に条件を変えて処理したい場合に有効です。項目切換機能を使えば、テンプレート中に条件を組み込むことができます。
任意のフィールドとテンプレートに埋め込んだ条件を比較して、出力内容を切り換える機能です。
条件を省略した場合、任意のフィールドが空白かどうかを条件として判別します。
条件に応じて、テンプレート内の指定範囲を表示・消去、または別の内容に差し替えることができます。
例えば、数値を挿入する場合、フィールドに数値がない場合に単位だけが画面に残らないようにしたり、不要なタグやオプションの記述を消すことができます。
同じ指定コードを複数使うことが可能です。
動作の基本はテンプレートにデータを差し込み、合成したデータをテキストファイルとして出力するというものです。
テンプレートは定型文書のようなもので、その各欄にデータを差し込み、完成した文書を作成するのです。
データの形式は、データベースなどからテキストファイルを抽出する段階で、レコードとフィールドの区切り記号を決めておきます。
Text2HTMLでは、データの読み込み時(または読み込み後)に同じ区切り記号を選択します。
読み込みが正しくできたかどうかは、「View」ボタンを押せば確認できます。
テンプレートにはどのデータをどこに差し込むかを指定しなければなりません。
そこで、フィールド指定コード(テキスト)をテンプレートに記述しておき、そのコードをフィールドデータに置き換える手法で文書を合成していきます。
出力されるファイルは、単純に1レコードを1つのファイルとする方法と、全レコードを1つのファイルに出力する方法があります。
それぞれ、シングルモード、リピートモードと呼びます。
シングルモードでは1レコード毎に出力ファイルが作成されます。
リピートモードでは、文書中にどの部分を1レコードに当てるかというリピート処理コードを使用します。
その他、条件検索、切換処理、項目切換処理など、データやテンプレートを処理中に選別・変更する機能も用意しました。
次の項目では、同梱のサンプルファイルを使った実例を使ってデータとテンプレートがどのように合成されるかを見てもらいます。
各専用コードの詳細はリファレンスを参照してください。
まず、最初は最もシンプルな合成処理であるシングルモードの基本パターンから見てみましょう。
「sample」フォルダを開いて2つのファイルを確認してください。
データファイル(list.csv)
1つのレコードに5つのフィールドがあり、日付、行事、ふりがな、祝日、西暦の表記があります。
テンプレート(sample.temp)
4つの専用コード($_n;)が埋め込まれたHTMLファイルです。
上記の2つのファイルを確認してください。
データファイルとテンプレートは [Select]ボタンを押して選択します。
まず、「Data Text File」の中にある [Select]ボタンを押して、ファイル選択のダイヤログを呼び出します。ダイヤログを操作して「Text2HTML」フォルダの「sample」フォルダを開いてください。その中に「list.csv」があるはずです。見つけたらそれをマウスで選んで、「選択」のボタンを押します。
File の右にある入力覧に「list.csv」とファイル名が表示されます。
次に「Template File」を同様の手順で、[Select]ボタンを押しダイヤログから「sample.temp」を選択します。
File覧にファイル名が表示されれば完了です。
画面は下の画像のようになっているはずです。
[End of Record] と [Fields Separated Character] は、「CR(Macの改行)」がレコードの終わりで、「,」がフィールドの区切りであることを意味しています。
これらはデータベースからテキストファイルを出力するときに影響します。今回はこのまま変更せずに次に進みますが、実際には、これらの設定にあるレコードとフィールドの区切りを使用してデータベースからの出力処理を行ってください。
[Check] を押してみましょう。「Data Text File」を読み込んで、レコード数とフィールド数の確認をします。(実行時に必ず自動的に行われます。)
そして、フィールドの内容を表示するダイヤログが表示されます。
このダイヤログではレコード毎に切り替えてフィールドの内容を確認することが出来ます。
[Close]ボタンの左にある上下のボタンでレコードを切り替えます。[Prev] は1つ前、[Next] は次のレコードを表示します。
次に出力ファイルの設定を行います。先に画面を見てみましょう。
まず、[Write Mode] が「Single」になっています。これは1レコードを読み込み、1つのテキストファイルとして出力する設定です。
ファイル名は [Write Mode] を切り替えると自動的に入力され「$_0;.html」となっています。(「$_0;」には出力回数に応じて1から順に数字が入ります。)
それを「$_1;.html」と書き換えてください。「$_1;」は1番目のフィールドを意味しますので、フィールドの内容がファイル名のその部分に置き換わります。
[Folder] ボタンは出力するフォルダを選択する場合に使います。指示がなければ Text2HTML と同じフォルダに出力されます。
[Start] を押すと合成処理が実行されます。
出力されたファイルは下のようになりました。
出力されたファイルを1つ見てみましょう。
出力ファイル(99.1.1.html)
テンプレートと比較してみると何が起こったか分かります。
Output Text File
<HTML> <BODY> <CENTER> <H1>正月</H1> (しょうがつ) <HR> 99.1.1 --- 祝日 <CENTER> </BODY> </HTML>
|
Template File
<HTML> <BODY> <CENTER> <H1>$_2;</H1> ($_3;) <HR> $_1; --- $_4; <CENTER> </BODY> </HTML>
|
Data Text File
98.7.7,七夕,たなばた,-,1998 99.1.1,正月,しょうがつ,祝日,1999 99.2.3,節分,せつぶん,-,1999 99.5.5,端午の節句,たんごのせっく,祝日,1999
|
このように、レコードを1つ1つHTMLに出力し、ファイル名もフィールドを指定することで自動的に決定します。
5番目のフィールドはテンプレートで使用していないため無視されたことになります。
次の画面は検索条件を設定した時のものです。
これを実行すると4番目のフィールドが「祝日」に合致するレコードだけが書き出されるため、HTMLファイルは「99.1.1.html」と「99.5.5.html」の2つだけが出力されることになります。
このように検索条件を使えば、1つのデータファイルを条件を変えることで様々に加工することができます。
次はリピートモードを行ってみましょう。
使用するデータファイルは前実例と同じですが、テンプレートはリピートモード専用のものを使用します。「sample」フォルダに入っています。
データファイル(list.csv)
1つのレコードに5つのフィールドがあり、日付、行事、ふりがな、祝日、西暦の表記があります。
テンプレート(sample2.temp)
フィールド用のコード($_n;)とリピート用のコード($_repeat;)が埋め込まれたHTMLファイルです。
それぞれのファイルを入力設定のファイル覧にドロップします。
できれば、次に出力設定を下の画面のように設定しましょう。
[Write Mode] を「Repeat」にすると「フィールド設定」にある [Header] という項目が入力できるようになります。
この [Write Mode] の切換は手動でも可能ですが、テンプレートを読み込んだ際に自動的に判別し切換を行っています。
ファイル名は1つのテキストファイルしか出力されませんので、専用コードは含まずに設定します。(コードを含んでもそのままの文字列で出力されます。)
[Header] は「$_header;」と「$_hend;」で挟まれたヘッダー(この場合、フィールド名を表示する行)をどのように挿入するかを設定する項目です。
レコードが繰り返し記録される際、指定されたフィールドが前フィールドと異なる場合にヘッダーが差し込まれます。(標準では「0」になっており、この場合ヘッダーは最初の1レコードの上にだけ現れます。)
今回は設定していませんが、検索条件も前実例同様に設定することができます。
検索条件は「is(全部一致)」「isn't(不一致)」「contains(含む)」「doesn't contain(含まない)」「begins
with(前方一致)」「ends with(後方一致)」の6種類を用意しました。
さあ設定はこれだけです。これを実行すると次のようなファイルが出力されます。
出力ファイル(program.html)
テンプレートとよく比較してみましょう。特にヘッダーに注目してください。
Output Text File
<HTML>
<BODY>
<H1>REPEAT</H1>
<HR>
<TABLE BORDER>
<TR><TH>1998</TH><TH COLSPAN=2>年中行事(ふりがな)</TH></TR>
<TR><TD>98.7.7</TD><TD>七夕</TD><TD>たなばた</TD></TR>
<TR><TH>1999</TH><TH COLSPAN=2>年中行事(ふりがな)</TH></TR>
<TR><TD>99.1.1</TD><TD>正月</TD><TD>しょうがつ</TD></TR>
<TR><TD>99.2.3</TD><TD>節分</TD><TD>せつぶん</TD></TR>
<TR><TD>99.5.5</TD><TD>端午の節句</TD><TD>たんごのせっく</TD></TR>
</TABLE>
</BODY>
</HTML>
Template File
<HTML>
<BODY>
<H1>REPEAT</H1>
<HR>
<TABLE BORDER>
$_header;<TR><TH>$_5;</TH><TH
COLSPAN=2>年中行事(ふりがな)</TH></TR>
$_hend;
$_repeat;<TR><TD>$_1;</TD><TD>$_2;</TD><TD>$_3;</TD></TR>
$_rend;
</TABLE>
</BODY>
</HTML>
Data Text File
98.7.7,七夕,たなばた,-,1998
99.1.1,正月,しょうがつ,祝日,1999
99.2.3,節分,せつぶん,-,1999
99.5.5,端午の節句,たんごのせっく,祝日,1999
5番目のフィールドをヘッダーフィールドに設定したため、西暦の表示が異なる1つ目と2つ目のレコードの間にヘッダーが挿入されました。
リピート処理の範囲は「$_repeat;」~「$_rend;」の間の部分で、これが1レコード毎に追加されて行きます。
「$_rend;」の前で改行しているのは、リピート範囲の最後に改行を加えるためです。
また、この表から先に作った1枚1枚へのリンクを設定すれば、一覧から詳細情報を開くようなものも作れます。
Template File
$_repeat;<TR><TD>$_1;</TD><TD>$_2;</TD><TD>$_3;</TD></TR>
$_rend;
↑この部分を↓のようにする。
Template File
$_repeat;<TR><TD><A HREF="$_1;.html">$_1;</A></TD><TD>$_2;</TD><TD>$_3;</TD></TR>
$_rend;
さて、どうなるか分かるでしょうか。
これが分かれば十分にText2HTMLを使っていただけるでしょう。早速、テンプレート作りに挑戦してみてください。
基本的な使い方はここまでで十分です。細かい仕様についてはリファレンスで解説していますのでご覧ください。
ここからは、少し複雑な処理をテンプレートで行いたいと思います。
切換処理はText2HTML上で条件を設定し、その条件に合った時、指定範囲を表示するというものです。条件が合わない時、指定範囲を削除してしまうと言う方が分かりやすいでしょうか。
address フォルダの中にある address と名前の付いたファイルを使います。(これから作成するファイルも含まれています。)
住所録を使った顧客台帳を作ってみましょう。
address.csv は、レコードを「CR」(改行)で、フィールドを「,」で区切ったファイルです。
1行目には見出しがあり、先頭に「#」があります。これは見出し行としてデータ出力の対象とはならないレコードです。
address.temp はシングルモード用のテンプレートです。これを使って個人別の顧客台帳を作成します。
address2.temp はリピートモード用のテンプレートです。こちらは顧客台帳の一覧表になるのですが、個別の台帳とリンクするための工夫がなされています。
1つは顧客名に個別の台帳へのリンクがあること。そして、もう1つの大きな特徴が切換処理を使って、個人データの一部と個別台帳へのリンクを表示したり表示を消したりしていることです。
今回はプライベート情報の公開を許可するかどうか、address.csv の8番目のフィールドを参照して情報の表示/非表示を決定しています。
切換処理には [$_switch;] と [$_send;] のコードを使用します。
【顧客データ一覧の作成】
まずは、顧客の一覧表を作成しましょう。「address」フォルダを開きます。
顧客データは「address.csv」を使用します。テンプレートは「address2.temp」を上の画面のように設定してください。
[Check] ボタンを押してレコード数を見てみると「21」となっていますが、「address.csv」の1行目がレコードとしてカウントされています。
「#」が頭に付いているので処理の対象にはなりませんが、1番目のレコードは処理フィールド数を決定するために参照されますので、必ず以降のレコードとフィールド数が異ならないように注意してください。
Data Text File(address.csv)
#Contact,Name,Age,Countory,Birthday,TEL,FAX,Accept
98.7.7,Andrew,30,USA,1968.5.2,055555xxxx,055555xxxx,1
・
・
・
Template File(address2.temp)
<HTML>
<BODY>
<H1>Address</H1>
<HR>
<TABLE BORDER=2 BGCOLOR=#FFFFFF>
$_header;<TR BGCOLOR=#FFFF99><TH>$_4;</TH><TH>Name</TH>
<TH>Birthday</TH><TH>TEL</TH></TR>
$_hend;
$_repeat;<TR><TD>$_4;</TD><TD>$_switch;<A
HREF="$_2;.html">$_send;$_2;$_switch;</A>$_send;</TD>
<TD>$_5;</TD><TD>$_switch;$_6;$_send;</TD></TR>
$_rend;
</TABLE>
</BODY>
</HTML>
下線部が切換処理によって表示/非表示が決定される部分です。
次に出力設定をします。テンプレートを読み込ませた段階でリピートモードに切り替わっています。
ファイル名は「NewFile.html」となっていますので、「address.html」と変更してください。[Folder] ボタンを押して出力フォルダに「address」フォルダを選択してください。
そして、ファイルのクリエータも「Netscape Communicator」に設定しましょう。(IEをご使用の場合は「Intenet Explorer」を選択して、以降は読み替えて作業してください。)
クリエータ(Creator)とは、MacOS が管理するデータで、そのデータファイルがどのアプリケーションで開かれる(作られた)ものかを示しています。
次にフィールド設定をします。切換処理ではこれが非常に重要です。
ヘッダー(Header)は「4」にします。4番目のフィールドは国名です。
「address.csv」を出力する際に国名と年齢でソート(並び替え)を実行してありますので、国名が切り替わる毎にヘッダーを差し込んでいくことにします。
また、テンプレートを見るとヘッダー内に「$_4;」の記述があります。ヘッダーにも切り替わりを示す国名が入るようにしています。
切換処理(Switch)の設定は検索と同じように行います。
読み込んだフィールドが条件に合致した場合に表示を行い、そうでない場合は表示をしないようにします。
「address.csv」の8番目(最後)のフィールドを見てください。「0」と「1」が振り分けられています。「1」と入力されている個人は個人情報の開示を許可しているという意味になっています。
そこで、これから作る一覧表では個別の顧客台帳へのリンクと電話番号の表示を切り替えることにします。
上の画面では、「Fields(8) is "1".」(「8」番目のフィールドが「1」に一致する)という条件を設定したことになります。
検索との大きな違いは、検索だと合致したレコードのみ出力するという点です。切換処理では、テンプレートの [$_switch;]...[$_send;]
部分を条件に応じて出力します。
これらは組み合わせることができますが、複雑な検索処理はデータベースで行ってください。
これで、[Start] ボタンを押すと「address.html」が作成されます。
アイコンが Netscape Communicator の保存ファイルになっています。これをクリックするとブラウザが起動して画面をすぐに見ることが出来ます。
【個別顧客データの作成】
次は個別の顧客名簿から作成します。
データは「address.csv」をもう一度使います。テンプレートは「address」フォルダの「address.temp」を使います。
Template File(address.temp)
<HTML>
<BODY>
<H2>$_2;</H2>
<HR>
<TABLE>
<TR><TD>Contact: $_1;</TD><TD>Address:
$_4;</TD></TR>
<TR><TD>TEL: $_6;</TD><TD>FAX:
$_7;</TD></TR>
<TR><TD COLSPAN=2>Birthday: $_5; ($_3;)</TD></TR>
</TABLE>
</BODY>
</HTML>
出力ファイル名は「$_2;.html」とします。出力フォルダは前回の設定がそのまま引き継がれます。
ファイル名の「$_2;」は2番目のフィールドの意味ですから、顧客名簿から名前が出力されます。
同名の人がいたときにはこれでは困りますから、「$_4;$_2;.html」のように他のデータと組み合わせることができます。
次に、一覧表のリンクと連動させるために検索機能を使ってデータを絞り込みます。
切換処理により出力したリンクと同じ条件を設定し、検索に合ったデータのみ出力するようにします。
[Start] を押せば「address」フォルダに各人の名前の入った12個のファイルが出力されます。
出力に成功したら実際にブラウザで確認してください。「address.html」をダブルクリックすれば「Netscape Communicator」が起動するはずです。
顧客名簿が一覧になって表示され、検索条件で指定したレコードの名前の部分にリンクがあります。
それら個人名のリンクをクリックすれば、各個人のファイルが表示されますので試してみましょう。
これで顧客名簿の完成です。
このような名簿だけでなく、商品カタログやスケジュール管理など様々な用途に活用することができますので、データベースと組み合わせて色々な使い方を考えてみてください。
項目切換処理は切換処理と似た機能です。
切換処理では条件を設定していましたが、こちらは条件の設定はありません。
対応するフィールドが空白であれば、指定範囲を削除するというものです。
実例1で使用したデータとテンプレートを修正して、項目切換を行ってみましょう。
「sample」フォルダを開いて2つのファイルを確認してください。
実例1では、専用コードが置き換わる様子を確認し、「祝日」という条件に合致したレコードだけを出力しました。
今度は全てのファイルを出力してみたいのですが、次の2つの出力例を比較して見てください。
出力ファイル(98.7.7.html / 99.1.1.html)
98.7.7.html
<HTML> <BODY> <CENTER> <H1>七夕</H1> (たなばた) <HR> 98.7.7 --- - <CENTER> </BODY> </HTML> |
99.1.1.html
<HTML> <BODY> <CENTER> <H1>正月</H1> (しょうがつ) <HR> 99.1.1 --- 祝日 <CENTER> </BODY> </HTML> |
問題の部分は左の4番目のフィールドが「祝日」でない場合の表示です。
最終的に次のような出力結果が得られるようにしたいと考えます。
Output Text File
<HTML> <BODY> <CENTER> <H1>七夕</H1> (たなばた) <HR> 98.7.7 <CENTER> </BODY> </HTML> |
HTML Browsing
七夕(たなばた)98.7.7
|
CSVファイルの祝日でないときの「-」を空白にするだけでなく、「---」の部分を消してしまいます。
データとテンプレートは次のように変更します。左が変更前、右が変更後です。
Data Text File
98.7.7,七夕,たなばた,-,1998 99.1.1,正月,しょうがつ,祝日,1999 99.2.3,節分,せつぶん,-,1999 99.5.5,端午の節句,たんごのせっく,祝日,1999 |
→ | Data Text File
98.7.7,七夕,たなばた,,1998 99.1.1,正月,しょうがつ,祝日,1999 99.2.3,節分,せつぶん,,1999 99.5.5,端午の節句,たんごのせっく,祝日,1999 |
Template File
<HTML> <BODY> <CENTER> <H1>$_2;</H1> ($_3;) <HR> $_1; --- $_4; <CENTER> </BODY> </HTML> |
→ | Template File
<HTML> <BODY> <CENTER> <H1>$_2;</H1> ($_3;) <HR> $_1;$_fs4; --- $_4;$_fsend; <CENTER> </BODY> </HTML> |
まず、CSVファイルでは、項目切換機能を活かしたいフィールドにはデータベースからの出力時に空白が入るようにしておきます。
テンプレートには「$_fs4;」と「$_fsend;」を1組にしたコードを埋め込みます。
この「$_fs4;」は項目切換(File Switch)を4番目のフィールドに対応して実施することを表しています。
ここでは「$_fs4;」から「$_fsend;」までの文字列が、4番目のフィールド($_4;)が空白になることで消去されます。実例3の切換機能(Switch)とは逆に消えてしまいます。
この機能を使うことで、<IMG>タグをテンプレートに置いておき、ファイル名だけをCSVファイルから読み込む場合に、ファイル名が空白のときはタグを表示しないようにすることができるのです。
これにより、データベースからの出力ファイルのサイズを小さくすることができるようになります。
また、もっと複雑に項目切換を配置することも可能です。同じ種類のコードを数カ所に埋め込むことも可能です。
他の終端のあるタグ同様に対になることを忘れないようにしてください。
ただし、この一対のコードの中に同様のコードを挟まないように注意してください。終端を取り違えて正しい結果を得られません。
フィールドが空白の時、項目切換機能は指定の領域を削除してしまいますが、別のものに置き換えることも可能です。
「$_fsend;」の直前に「$_fselse;」のコードを挿入します。そして、その後ろに置き換えたい文字列を用意しておきます。
まず、テンプレートの変更点を見てみましょう。
Template File
<HTML> <BODY> <CENTER> <H1>$_2;</H1> ($_3;) <HR> $_1;$_fs4; --- $_4;$_fsend; <CENTER> </BODY> </HTML> |
→ | Template File
<HTML> <BODY> <CENTER> <H1>$_2;</H1> ($_3;) <HR> $_1; --- $_fs4;$_4;$_fselse;平日$_fsend; <CENTER> </BODY> </HTML> |
「祝日」でない場合、土・日曜日のことは無視して「平日」と表示することにしました。
もちろん、データベース上でも可能ですが、分かりやすくするために単純な事例にしています。
各出力ファイルの状態は以下のようになります。置き換えの効果を確認してください。
98.7.7.html
<HTML> <BODY> <CENTER> <H1>七夕</H1> (たなばた) <HR> 98.7.7 --- 平日 <CENTER> </BODY> </HTML> |
99.1.1.html
<HTML> <BODY> <CENTER> <H1>正月</H1> (しょうがつ) <HR> 99.1.1 --- 祝日 <CENTER> </BODY> </HTML> |
「$_fselse;」の役割は非常に単純ですが、とても効果的に利用できますし、複雑な処理に活用できます。
さて、更なる応用をしてみましょう。
「祝日」が空白の時、文字を消去する方法へ立ち戻り、更に祝日の時とそれ以外の時で、日付の色を変えてみまたいと思います。
テンプレートは次のようになります。
Template File
<HTML> <BODY> <CENTER> <H1>$_2;</H1> ($_3;) <HR> <FONT COLOR=$_fs4;#FF0000$_fselse;#0000FF$_fsend;>$_1;</FONT>$_fs4; --- $_4;$_fsend; <CENTER> </BODY> </HTML> |
このテンプレートを実行すると次のような結果が得られます。
HTML Browsing - 98.7.7.html
七夕(たなばた)98.7.7
|
HTML Browsing 99.1.1.html
正月(しょうがつ)99.1.1 --- 祝日
|
このように2つの同じ「$_fs4;」から始まるコードを使って、別々の場所にある表記を連動させて、また、全く別の意味に応用することが可能になっています。
データベースの機能を使ってもできることですが、データを単純にし、テンプレートで複雑な機能を実現するための手法となっています。
また、他のコードとの組み合わせによって、様々な利用の仕方が考えられます。
次はオリジナルのテンプレートを作成してみてください。
レコードの途中や最後にレコード区切り文字を入れることで、1レコードを2つに分割したり、2つのレコードを1つにまとめて処理させることが出来ます。
特殊なデザインのファイルを作りたいときの応用ワザをいくつか紹介します。
シングルモードでは、レコードの区切り毎に1つのファイルを出力します。
もし、1つのファイルに2つ3つのレコードをまとめて入れたい場合は、レコードの区切り文字を細工することで対応ができます。
データベースでレコード区切りを「改行」、フィールド区切りを「,」にします。3つのレコードを1つのまとめる場合を例にします。
レコードの出力時に、最後のフィールドに細工をしておきます。1つめ、2つめの最後のフィールドは空白で出力し、3つめのレコードの最後のフィールドに「tab」を出力します。
この出力データを読み込むときに、レコード区切りを「tab」にします。するとデータベース上の1つめから3つめのレコードを1つのレコードとして処理することができます。
リピートモードでは、1レコード毎に繰り返して処理を行います。1つのリピート部に複数のレコードを入れるためには、複数のレコードを1つのレコードとして合成処理を行わせます。
手順は【シングルモードで1ファイルに複数のレコードを入れる】と同じです。1つにまとめたいレコードの最後に処理時のレコード区切り文字を出力させます。
表を見やすくするためにレコード毎(行毎)に背景色を変更したい場合があります。
フィールドに色番号を出力してCOLORオプションに適用することで色を変えることができます。
ここでは、作業を自動化するまでの一連の流れを具体的に紹介します。
データやテンプレートの作成から、Text2HTMLでの設定項目、合成処理においては内部での動作手順を、作成時のコツなどを交えて解説します。
関連ファイルはフォルダ「dealer」に入っています。
商品データをHTML形式にカタログ化している例を使って話を進めていきます。
商品は自動車です。中古車を扱う店舗がどのように商品を管理し、ネットで販売するかを追っていきます。
まず、在庫となる車の商品台帳をデータベースを使って作成します。
Excel のような表計算ソフトでもかまいませんが、やはりデータベース専用のソフトを利用します。File Maker Pro を使っている場合を想定しています。
必要項目は話の都合で以下の12項目にします。
フィールド番号 | 項目名 | データ形式 | 内容 |
---|---|---|---|
Field 1 | 管理番号 | 数値 | 自動連番 |
Field 2 | メーカー | 文字列 | カナ文字 |
Field 3 | 車名 | 文字列 | |
Field 4 | 型式 | 文字列 | 半角英数 |
Field 5 | 年式 | 数値 | 西暦 |
Field 6 | 排気量 | 数値 | リッター |
Field 7 | 色 | 文字列 | HTML用の色番号(#FF0000等) |
Field 8 | 売価 | 数値 | 万円 |
Field 9 | 原価 | 数値 | 万円 |
Field 10 | 写真 | 画像 | JPEG形式 |
Field 11 | 画像ファイル名 | 文字列 | 管理番号に.jpgを付加、写真がない場合は空白 |
Field 12 | 販売状況 | 文字列 | 販売中、商談中、予約済、売渡済 |
出力するデータ形式はCSV形式が理想です。CSVはテキストファイルで、レコードの区切りがCR(改行コード、Windows ではCR+LF)、フィールドの区切りが「,」です。文字列には囲みの記号がありません。
このCSV形式はエクセルでも出力可能です。しかし、File Maker Pro はちょっと違います。
各フィールドが「"」で囲まれた形となります。ここでは気にする必要はありませんが、Text2HTMLで読み込む時にフィールド区切文字の選択時に注意を要します。
さて、データファイルの出力時には全ての項目を出力する必要はありません。
カタログに必要な10項目だけを出力します。また、出力対象は「販売状況」が「売渡済」以外のものを検索したものです。
例は次のようになります。(cars.csv)
"10919","マツダ","MX-6","E-GE5B","1992","2.49","#000000","50.0","10919.jpg","販売中"
写真のデータはテキストでは書き出せませんので、通常は写真を表示するためのタグかファイル名を出力します。ここでは、管理番号と同じですので、省略できそうですが、写真があるかないかの判定に「画像ファイル名」を使っています。(File
Maker Pro では写真の項目が空の時に画像ファイル名を自動入力するように設定できます)
「販売状況」が「商談中」「予約済」の場合、画像ファイル名をそれぞれ、「shodan.jpg」「yoyaku.jpg」として、実車の写真を「商談中」「予約済」の文字の入った画像に入れ換えます。(これもデータベース上で設定しておきましょう)
出力時のデータの並び順も重要な要素です。ここでは、メーカー別にリストを作成することを考え、管理番号順ではなく、メーカー順に並び替えて置きましょう。(名称では思った順にならない時は、任意のメーカー番号を決めておき、その項目を並び替えに使用しましょう)
テンプレートは完成のHTMLを先に作ってから、コードを置き換えて行くと分かりやすいでしょう。
まず、単品のカタログを製作します。上のデータを使った完成予想図は次のようになります。
Browsing(10919.html)
|
Template File(dealer.temp)
出力される単品のカタログは1番目のフィールドである管理番号をファイル名(10919.html)にする予定です。
次に一覧表を作ってみましょう。使用するデータファイルは単品の時と同じものを使います。
サンプル画面は次のようになります。
Browsing(dealer.html)
中古車一覧表
|
一覧表には写真以外の全ての項目が入っています。
メーカー名の部分はヘッダー機能($_header; ... $_hend;)を使って、メーカー名が変わったときに挿入されるようにします。(データファイルをメーカー順に並び替えておく意味はここです)
各データは繰り返し処理される範囲($_repeat; ... $_rend;)に入らなければなりません。
リンク先にはもちろん、単品カタログのファイルがあることが前提になっています。(サンプルは付属していません)
車体色が空欄のときの処置はこちらも同じようにします。
テンプレートは次のようになります。
Template File(dealer_list.temp)
これで2つのテンプレートの準備が整いました。それぞれ、単品用テンプレート、一覧用テンプレートと呼びます。
これらのテンプレートはホームページのデザインを変更するとき以外はメンテナンスは必要ありません。
そのためにも間違いや不具合がないかどうか、実際に合成処理をやって試すまでは分かりませんが、一度正しく動作すれば、この作業は不要となります。
データとテンプレートが用意できたら、自動化のための設定を行います。
Input、Output、Fieldsの各設定を行います。Text2HTMLの画面を見てください。
これで、「Start」を押せば、レコード数と同じ数のHTMLファイルが出力されます。今回は1つです。
ファイル名には管理番号が自動的に付されて出力されます。
設定後、「Start」を押せば、一覧表のHTMLファイルが1つ出力されます。
出力ファイルを1つにして、設定ファイルで必要なレコードを切り換えると、複数のリストを作成するときに便利です。
例えば、今回製作したリストをメーカー別に出力する場合、検索機能を使って、1メーカーのデータだけを出力対象にし、ファイル名もメーカー別に変えておきます。メーカー毎に設定ファイルを保存しておけば、これら設定項目全てが切り替わります。
合成処理の行程は処理済みの出力ファイルから知ることは難しいでしょう。
そこで、実際のプログラムの動作手順を追いながら、内部処理の優先順位を確認してみましょう。
各設定ファイルが選択されているか、また、それらは正しく存在するかを確認します。
レコード数を確認後、1レコード目のフィールド数を調べる。(以後、このフィールド数を最高限度として処理する)
テンプレート内に最大フィールド数の内、どのフィールド指定コードが存在しているかを確認する。
リピートモードの場合、テンプレートからヘッダー部($_header; ... $_hend;)とリピート部($_repeat; ...
$_rend;)を取り出しておく。
シングルモードの場合、ヘッダーやリピートのコードがあれば、コードのみ削除する。
テンプレート内に切換機能部($_switch; ... $_send;)があるか確認し、切換機能に検索条件が入っていないときは、コードのみ削除する。
レコードが処理に適しているか確認する。(フィールドが存在しない、または、行の先頭に「#」がある場合は処理しない)
各フィールドが「"」で囲まれている場合は、「"」を取り除く。
検索機能(Search)を実行し、レコードを処理するかどうか判定する。
処理対象のレコードの場合、連番($_0;)のカウントを行う。
フィールド毎の処理を行う。(以降は1レコード処理後の手順)
余分なコード(4種)を削除する。
ファイルを出力する。
合成処理の結果をダイヤログに表示する。
合成処理によって出力されたHTMLファイルはFTPソフトを使ってウェブサーバーへ転送しましょう。
もちろん、ローカルドライブ上でもカタログとして利用することができます。
しかし、HTMLファイルだけではカタログになりません。
先ほどの、車の画像など画面を飾るファイルも必要となります。これら関連ファイルはどのように管理をすれば良いでしょうか?
飾りに使う各ページ共通の画像ファイルは全部転送すれば良いのですが、写真はデータと同じように必要なものだけを選別して転送したいところです。
しかし、抽出したデータを元に、写真を選別する作業はText2HTMLではできません。そこで、ファイルを抽出するためのアプリケーションを用意しました。
それが「FileSelecter」なのです。(別途、私のサイトからダウンロードが必要です)
この「FileSelecter」では、ファイルを選別するためのフォルダを2つ選択します。選別前の写真が入ったフォルダをストック、選別後の写真が入るフォルダをカレントと呼びます。
そして、ファイルを選別するためのリストをフィルタと呼んでいます。このフィルタにはテキストファイルを使用します。
データベースソフトから、CSVファイルを取り出す手順を使って、各レコードから写真のファイル名を書き出したテキストファイルを出力します。
例えば、「10919.jpg」というキーワードがテキストファイルに記述されます。
これをフィルタとして「FileSelecter」を動かすと、フィルタに含まれるキーワードでストックフォルダ内のファイルを検索し、該当するファイルをカレントへと転送(移動または複写)します。
この時、フィルタに該当しないファイルはカレントからストックへと転送(移動)させられます。
これで、カレントフォルダには抽出された画像ファイルのみが集まりました。これを転送すれば完璧ということになります。
さて、通常データベースとHTMLファイルは別々のフォルダで管理しているはずです。ということは、データベース用の写真とHTMLファイルに挿入される写真も別々のフォルダが用意されていることでしょう。
それらがストックとカレントのフォルダとなります。下図の[~]はドライブやフォルダを意味しています。
[Macintoshドライブ] | |||
┣[データベース] | ┳商品データ | →CSVファイル、フィルタファイルの書き出し | |
┃ | ┣得意先データ | ||
┃ | ┣車両データ | ||
┃ | ┣[Photo] | ┳10919.jpg(ストックフォルダ) | |
┃ | ┗ | ┗ | |
┣[Home Page] | ┳index.html | ||
┃ | ┣dealer.html | ||
┃ | ┣10919.html | ||
┃ | ┣[JPEG] | ┳10919.jpg(カレントフォルダ) | |
┗ | ┗ | ┗ |
ストック-カレント間の転送はコピーモードにしておけば、データベースのフォルダにも写真ファイルが残っています。
また、この方法を使えば、HTMLファイルも事前にすべて作っておいて、フィルタファイルで選別するという方法も時には有効かもしれません。
選別の必要性については、次の3つのパターンにまとめておきます。
ファイルの転送が終わったら、必ず実際にホームページをウェブ上で閲覧してみましょう。
時々、思わぬ間違いに気づくことがありますので、転送し忘れなどがないか、チェックはぬかりなくしてください。
ウェブ上で閲覧ができれば、作業はすべて完了となります。
【制限解除の内容】
シェアウェア登録をしていただくと、機能制限が解除され次の機能が使えるようになります。
【設定ファイルに記録される内容】
項目 | 内容 |
---|---|
Data Text File | ファイルのパス情報 |
Template File | ファイルのパス情報 |
Write Mode | シングル or リピート |
Output Text File | 保存フォルダのパス情報 |
Output Text File | 保存ファイルの名称 |
Output Text File | クリエータ |
Fields Setting | ヘッダーのフィールド番号 |
Fields Setting | 検索機能の各条件項目 |
Fields Setting | 置換機能の各条件項目 |
Preferences | 専用コードの各設定 |
Preferences | 出力用標準拡張子 |
【自動実行】
設定ファイルに「.auto」の拡張子を付加すると、これをダブルクリックして起動した場合、自動的に合成処理を実行し、アプリを終了させます。
これによりダブルクリックだけで1つの処理を実行し完結させることができます。
Load ボタンやドロップして設定ファイルを開いた場合は、自動実行および自動終了も行われません。
【基本用語】
用語・項目 | 意味 |
---|---|
レコード | 1件のデータ 例:名簿の一人分のデータ |
フィールド | 1レコード内の1項目 例:名簿の氏名や住所など |
書換処理 | 任意の箇所にフィールドの内容を差し込むこと |
合成処理 | テンプレートとデータを組み合わせる、テキストファイルを出力する処理のこと |
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
[Start] ボタン | テキスト合成処理を実行する | ・テキストファイルが正しく選択されているかチェックを行ってから実行される |
[Load] ボタン (*1) | 設定ファイルを読み込む | ・設定ファイルに記録されている入力ファイルがない場合、入力ファイル名は表示されない |
[Save] ボタン (*1) | 設定ファイルを保存する | ・[option] キーと同時に押すと上書き保存の確認ダイヤログが出る ・ファイル名の最後に「.auto」を付加すると、自動実行ファイルとなる。(機能制限参照) |
(*1) | シェアウェア登録後使用可 | |
[Quit] メニュー | アプリの終了 | プルダウンメニュー
・ウインドウを閉じると終了する |
用語・項目 | 意味 | 設定値 | FAQ |
---|---|---|---|
Data Text File | データベースから出力したデータファイル | レコードとフィールドが決まった形で区切られていること | ・テキストファイルでなければならない ・レコードの先頭(1番目のフィールドの先頭)に「#」があるとそのレコードは無視される。 ・最初のレコードを参照し、フィールド数を決定する。(先頭に「#」を付けた場合も) |
File | テキストファイル名 | [Select] ボタンを押して選択するか、ファイルをドロップして入力する | ・ファイル名を修正することはできない ・実行時に内容を読み込むので、設定後でもファイルの内容を修正しても良い |
Record: Separater | レコードの終わりを示す区切り記号 | [CR] = Macの改行コード [LF] = Winの改行コード [LF&CR] = UNIXの改行コード [,] = カンマ [tab] = タブ |
・これ以外の記号を区切りに利用している場合、事前にエディタなどで記号を置き換えると良い |
Filed: Separater | フィールドの区切りを示す記号 | 区切り記号と同時にフィールドデータが「"」に囲まれているかどうかも指示する [,] = カンマ [,"field"]= カンマ区切りで、フィールドの前後に「"」 [,"text"]=カンマ区切りで、テキスト部分の前後に「"」 [tab] = タブ [tab"field"]= タブ区切りで、フィールドの前後に「"」 [tab"text"]=タブ区切りで、テキスト部分の前後に「"」 |
・ダブルクォート「"」の代わりにシングルクォート「'」は使えない ・レコードと同じフィールド区切り記号を設定しても無効 ・FileMakerやExcelで「"」囲いで出力した場合、文字としての「"」は出力後「""」と表記されるため、"field"または"text"を選んだ場合、自動的に1つの「"」に調整を行う ・"text"を選んだ場合、ダブルクォートに挟まれた内にある区切り記号は文字として扱う。「"」で囲まれているフィールドとそうでないフィールドが混在している場合に有効 |
Record: Count | レコード数 | 区切り記号によって読み込んだレコード数 | |
Filed: Count | フィールド数 | 有効な1レコード目のフィールド数 | |
[View] ボタン | データテキストのレコード数・フィールド数を再計算し、レコード情報をダイヤログに表示 次項「チェック画面」参照 |
確認後、[Records] [Fields] に数字が表示される | ・確認しなくとも良い ・問題点を指摘することはない ・[option] キーと同時に押すと再チェックせずにフィールド情報を表示 |
用語・項目 | 意味 | 設定値 | FAQ |
Template File | フィールドを流し込むための原本となるファイル | 専用コードを記述する必要がある | ・テキストファイルでなければならない ・文字修飾は出力ファイルに適用されない |
File | テンプレートファイル名 | [Select] ボタンを押して選択するか、ファイルをドロップして入力する | ・ファイル名を修正することはできない ・入力時に内容をチェックし、Write Mode(Single/Repeat)を確認する |
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
表示部 | 1レコードを表示 | フィールド番号とフィールド内容
・空白のレコードまたは#で始まるレコードはグレー表示 |
[Close] | チェック画面を閉じる | ・合成処理を始めようとすると自動的に閉じる |
[Prev] | 1つ前のレコードを表示する | ・押したままで順次切り替わる |
[Next] | 次のレコードを表示する |
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
Output Text File | 出力されるテキストファイル | データテキストとテンプレートを合成して作成されるファイル
・HTMLに限らない |
Write Mode | 下記、[Single][Repeat]参照 | |
[Single] | シングルモード | 1レコードを1ファイルに書き出す
・ファイル名にもフィールド指定コードが使用できる ・コードは複数組み合わせることも可能 |
[Repeat] | リピートモード | 1ファイルにレコードを連ねて書き出す |
File | 出力ファイル名 | Template Text または Write Mode によって自動的に入力される キーボードから入力するか、ファイルをドロップする |
[Folder] | フォルダを選択するダイヤログを表示 | 未指定の場合、Text2HTMLと同じフォルダにファイル出力 選択後はファイル名の上にフォルダ名を表示 ・フォルダ名はファイルをドロップした場合か[Folder]ボタンを使ってフォルダを選択した場合に表示される |
Creator | 出力ファイルに設定するクリエータ テキストファイルを開くアプリケーションの指定に利用 |
Output Text のCreator を選択します 「Edit...」を選択するとクリエータ編集画面が開きます ・メニューに無いクリエータを使用したい場合、そのクリエータを持つテキストファイルを[File]にドラッグすれば良い |
【クリエータ編集画面 [Creator Editing Dialog]】
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
リストボックス | 登録クリエータの表示 | 登録したいアイコンをドロップするとアプリ名とクリエータが追加されます ダブルクリックまたは登録のないリスト内の位置をクリックすると選択を解除します ・出力設定で選択されたクリエータがリストにない場合、アプリ名が「 ・アプリ名が「 アプリ名またはクリエータが空欄の場合もリストから削除されます |
編集ボックス | アプリ名を表示 | リストボックスから選択したアプリ名とクリエータ名が表示されます リストが未選択の状態で入力すれば追加登録ができます |
[Remove] | 登録クリエータを削除する | リストボックスから選択した1行を抹消します |
[Import] | Creatorsファイルを読み込む | CreCon(秀麗作フリーウェア)用のCreatorsファイルを読み込んで、リストボックスに追加します |
[Close] | 画面を閉じる |
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
表示部 | 作業状況の表示 | 合成処理中のレコード番号と処理内容の表示 完了時には条件設定により合成処理の対象となったレコード数を表示 |
タイマー | 経過時間の表示 | 合成処理が始まるとカウントが始まり、終了時に停止する |
[Cancel] | 処理を中断する | 合成処理完了後、[Close]になる
・シングルモードでは途中までファイルが保存された状況で中断されます |
[Close] | 画面を閉じる | ・[option]キーを押しながらクリックするとアプリを終了する |
用語・項目 | 意味 | 設定値 | FAQ |
---|---|---|---|
Fields(N) | 検索対象となるフィールド | フィールド番号を指定(1以上フィールド数以下) | |
Field Data | 検索文字列 | 検索対象と条件を比較する任意の文字列 | |
Header | ヘッダーの設定 指定番号のフィールドが前レコードと異なる場合にヘッダーを挿入する |
[Repeat]モードの場合にフィールドを番号で指定(1以上フィールド数以下) [0] = ヘッダーの挿入は1番目のレコードの上だけ |
・0以上の数字を入力すること(小数は小数点以下を切り捨てて処理) ・ヘッダーを1つも挿入したくないときは、テンプレートから [$_header;]~[$_hend;] を取り除く |
Search | 検索の設定 | [Fields(n)][Field Data][検索条件]を参照 | ・検索対象のフィールドデータと検索値を比較し、検索条件を満たした場合のみ、そのレコードを出力する。検索条件は下表「検索条件」をご覧ください ・検索しない場合、全レコードを出力 ・検索対象がない場合、検索しない ・数字の大小比較には未対応 |
Switch | 切換の設定 | [Fields(n)][Field Data][切換条件]を参照 | ・切換対象のフィールドデータと検索値を比較し、切換条件を満たした場合のみ、[$_switch;]~[$_send;] の範囲を表示する。切換条件は下表「検索条件」をご覧ください ・切換しない場合、切換対象範囲は表示される ・検索対象がない場合、切換対象範囲は表示される ・数字の大小比較には未対応 |
メニュー表示 | 意味 |
---|---|
[Not Search] | 検索しない |
[is] | 全部一致 |
[isn't] | 不一致 |
[contains] | 含む |
[doesn't contain] | 含まない |
[begins with] | 前方一致 |
[ends with] | 後方一致 |
[=] | 数値で評価して一致 |
[<>] | 数値で評価して不一致 |
[>] | 数値で評価してフィールド内容が条件値より大きい |
[<] | 数値で評価してフィールド内容が条件値より小さい |
[>=] | 数値で評価してフィールド内容が条件値以上 |
[<=] | 数値で評価してフィールド内容が条件値以下 |
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
Template Special Code | テンプレートで使用する専用コード | 専用コードの前後にある記号を編集できます フィールド指定コードを例に、その前後の「$_」と「;」をユーザーが任意に変更することができます 下段には項目切換範囲とリピート範囲のコードを例示します。各コードについては次項の【専用コード】参照 ・変更したコードは設定ファイルにも記録されます ・コードを設定ファイルで切り換えて使用する場合、最後に使用したものが初期設定にも記録されています |
[Default] ボタン | 専用コードの前後の記号を標準に戻す | 前部「$_」、後部「;」 |
File Extension | 標準設定のファイル名に付ける拡張子 | 「.」を含む6文字まで
・「.」を忘れると自動的に付加される ・不要な場合は空白にすること ・合成処理の中で自動付加はしない |
テンプレートでは以下の専用コードを使用することが出来ます。
用語・項目 | 意味 | 設定値 & FAQ |
---|---|---|
$_N; | フィールド指定コード | 「n」番目のフィールドの内容に置き換わる。 $_0; = レコードの連番を出力する(検索条件によりレコードを飛ばした場合、番号を詰めて処理する) $_1; $_2; $_3; ... = フィールドの番号を示し、そのフィールドの内容を出力する(レコード毎に内容は変化) ・コードの置換はフィールド番号の小さな順に行われる ・リピートモードでリピートモード専用コードの外にある $_N; は条件に合致した最初のレコード処理時に行われる ・テンプレート内およびファイル名に使用可能 ・$_0; は切換処理で非表示になっても連番として出力される(番号が飛ぶ) ・複数箇所に設置可能 |
$_fsN;(A) $_fsend; |
項目切換範囲 | 「N」番目のフィールドが空白の場合、指定範囲(A)を消去する。 $_fs1; $_fs2; $_fs3; ... = フィールドの番号に対応する項目切換範囲の始まり $_fsend; = 各項目切換範囲の終わり ・複数箇所に設置可能 |
$_fsN;(A) $_fselse;(B) $_fsend; |
項目切換範囲 | 「N」番目のフィールドが空白でない場合は(A)を表示し、空白の場合は(B)を表示する
・複数箇所に設置可能 |
$_fsN[条件];(A) $_fselse;(B) $_fsend; |
項目切換範囲 | 「N」番目のフィールドが条件を満たす場合は(A)を表示し、条件が満たされない場合は(B)を表示する。 条件には条件式と条件値を続けて記述する。例:[eq 有](文字列「有」に一致)、[> 50](数値「50」を超える) ・複数箇所に設置可能 ・条件式と条件値の間はスペース(半角空白)が入っても良いが、条件値の両側にあるスペースは判定時に削除される。 ・スペースを条件値とすることはできない。 |
$_repeat;(A) $_rend; |
リピート範囲 | リピートモードに必ず必要 この範囲を1レコード毎に繰り返して出力する ・1つのテンプレート内では1組しか使用できない ・シングルモードではコードが自動的に消去される |
$_repeat;(A) $_rnext;(B) $_rend; |
リピート範囲 | リピート範囲の中に$_rnext;を使って複数のリピート範囲を切り換えることが可能 (A)と(B)の2つの区分が有る場合、レコードに対してそれぞれが交互に適用される。$_rnext;の数に制限はなく、3つ4つと切換パターンを用意することができる ・$_repeat;と$_rend;は1組しか使用できない ・$_rnext;は必ずリピート範囲コードの中で使う ・各パートの切換は自動的に行われる |
$_repeat;(A) $_nodata;(B) $_rend; |
リピート範囲 | リピート範囲の中に$_nodata;を使って、リーピト出力のデータがなかった場合に(B)を代替表示部として出力します。
・$_nodata;はリピート範囲内に1つのみ指定できる ・$_nodata;より前であれば$_rnext;を使用することができる ・シングルモードではコードが自動的に消去される |
$_header;(A) $_hend; |
ヘッダー範囲 | リピートモードで使用 フィールド設定で対象フィールドを設定し、そのフィールドが前レコードと異なった場合に前レコードとの間にヘッダーを出力する 1番目のレコードの上には必ず出力される ・1つのテンプレート内では1組しか使用できない ・シングルモードではコードが自動的に消去される ヘッダー範囲はテンプレート中のどこにでも置くことができるが、合成処理時には必ずリピート範囲の直前に挿入される |
$_switch;(A) $_send; |
切換範囲 | 検索対象のフィールドと文字列を設定し、条件を満たした場合、表示する 条件を満たさない場合、表示されない範囲 ・複数箇所に設置可能(1つの条件に全て連動) ・条件がない場合、条件を満たしたとして処理する |
$_switch;(A) $_selse;(B) $_send; |
切換範囲 | 検索対象のフィールドと文字列を設定し、条件に合った場合とそうでない場合で表示を切り換える (A) = 条件が合った場合に表示する (B) = 条件が合わなかった場合に表示する ・複数箇所に設置可能(1つの条件に全て連動) ・条件がない場合、条件を満たしたとして処理する |
条件式 | 意味 |
---|---|
eq | 文字列で評価して一致 |
ne | 文字列で評価して不一致 |
in | 文字列で評価して部分一致 |
ni | 文字列で評価して部分不一致 |
fr << |
文字列で評価して前方一致 |
ff >> |
文字列で評価して後方一致 |
= == |
数値で評価して一致 |
<> != |
数値で評価して不一致 |
> | 数値で評価してフィールド内容が条件値より大きい |
< | 数値で評価してフィールド内容が条件値より小さい |
>= => |
数値で評価してフィールド内容が条件値以上 |
<= =< |
数値で評価してフィールド内容が条件値以下 |
このソフトはシェアウェアです。一部の機能を制限してご試用いただき、その評価によって使用料をいただくというものです。
開発には REALbasic という有償のソフトを使用し、また多くの時間を費やしています。更に技術の向上をはかり、ソフトの改良を続けるためにも、ご理解ご協力よろしくお願いいたします。
★シェアウェアフィー | 1000円 (企業ユーザー様等、余分の入金も大歓迎です。領収書の必要な方は郵便振替をご利用ください。) |
||
★決済方法 | ベクター | 手数料100円 | オンライン決済後、ベクターよりキーファイルがメールで送られてきます。 |
郵便振替 | 手数料70円 送金に4・5日かかります。 口座番号:京都 01040-3-14355 口座名:ソフトラボ |
入金確認後、キーファイルをメールに添付して送信します。 通信欄には必ずソフト名とメールアドレスをご記入下さい。 入金後、入金日、お名前を明記したメールをいただければ、受信したアドレスへ返信いたします。 |
※手数料はシェアウェアフィーの送金に必要な別途料金です。各決済機関が変更することもありますので、ご確認ください。
※メールアドレスはこのドキュメントのトップにあります。
REALbasic の機能を補完するプラグインに天野良氏(Straw Hat)、尾野道男氏(Micono Utilities)のプラグインを使わせていただきました。
諸材料の提供・応援くださったみなさまにお礼申し上げます。
・v1.5で保存したデータファイルはそれ以前のText2HTMLでは正しく読み込めません。それ以前のデータファイルをv1.5以降で読み込むことは可能です。
・v1.5より68Kでへの対応ができなくなりました。(Rb4.0の仕様)
030209(1.5.4)・・・FieldSwitchの条件判定を文字列と数値に分離し、文字列用の条件式を追加。
021114(1.5.3)・・・FieldSwitch機能と設定ファイル書出の不具合を修正。出力データなし時の代替処理の追加
020525(1.5.2)・・・設定ファイルの読込・書出時のエラーを警告・回避
020415(1.5.1)・・・合成処理の高速化。フィールド区切りを2つ追加。処理中ダイヤログの改良
020411(1.5)・・・Rb4.0用に調整。項目切換機能の修正・強化。データファイルを一部変更
010317(1.4)・・・Rb3.0用に調整。内部処理を統合整理。データファイルを一部修正
001029(1.3.2)・・・自動実行機能の修正。プルダウンメニューを追加
000929(1.3.1)・・・自動実行機能を付加。iMac DV-SE でコンパイルし直す
000919(1.3)・・・FieldSwitch機能を付加。Switch機能を強化。合成処理の仕組みを改良。デザインの一部変更
000909(1.2)・・・出力用Creatorのリストを編集可能。Rb2.1.2用に調整
000426(1.1.2)・・・About Boxのバグ修正
000424(1.1.1)・・・REALbasicのバージョンアップ(2.0)により再コンパイル。FATバイナリ化
991016(1.1)・・・インタフェースの見直し。プラグインのアップデート。マニュアルの修正
990924(1.0)・・・フィールドの処理を高速化。スレッド化により他のアプリを止めないで処理実行
990917(b3)・・・レコードの読み込みを高速化
990915(b2)・・・日本語処理の不具合を修正
990906(b1)・・・レコードチェックを強化。初期設定を使用
990904(a2)・・・切換処理を追加
990901(a1)・・・基本機能の完成
990830・・・製作開始