AppleScript 救急隊

The ForeSight Inc. AppleScript救急隊 ASQsについて Download (サンプル&デモ)


ビジネスで有効活用を目指す

われらがAppleScript救急隊


MacPower誌

Vol.3 ファイルメーカーProからHTML出力(1)

今回はファイルメーカーProのデータベースをHTMLに変換するスクリプトに挑戦する。
ポイントは、文字列の連結とAppleScriptからのテキストファイルの作成だ。
HTMLのレイアウトを気にせず、とにかくHTML形式のファイルを作ることを目指してスクリプトを作ってみよう。

ファイルメーカーProで情報発信
ところでHTMLとは?
ファイルメーカーProからのレコードをHTMLに変換する
テキストファイルの作成

ファイルメーカーProで情報発信

インターネットでは、ファイルメーカーProのデータベースを利用したWWWでの情報発信が、数多くのサイトで行われている。
「WebSTAR[*1]」などのMac用Webサーバーソフトと「Tango for FileMaker Pro[*2]」などのユーティリティーを組み合わせて、
インターネットやイントラネットでデータベースを共有するわけだ。
これらの製品を使えば非常に簡単にWeb-DBのシステムを開発できる。もちろんこうしたシステムの実現にAppleScriptを使うこともでき、実際に運用しているサイトも多い(図1)。


図1 Web-DBシステムの仕組み。

ユーザーのブラウザーからの検索要求などの命令を、CGI(Common Gateway Interface)というプログラムで処理。結果をHTMLにしてWWWサーバーから出力する
今回はもう少しシンプルに、ファイルメーカーProの内容をHTMLに変換することに挑戦しよう。
前述のように、データベースの内容をダイナミックに共有することも有用だが、手持ちのデータベースの内容HTMLとして保存できるだけでも便利ではないだろうか。自分のホームページでデータベース的なコンテンツを公開している人は、内容をファイルメーカーProで管理できるのでお勧めだ。


TOPへ

ところでHTMLとは?

先程から「HTML、HTML」と言っているが、HTMLが何だかわからないと話が先に進まないので、ここで簡単にHTMLについて説明しておく。HTML(Hyper Text Mark-up Language)はWWWでの情報を作成するための言語。言語とはいっても、Apple Scriptのように処理方法を流れに沿って記述するようなものでなく、表示させたいテキストの中に「タグ」と呼ばれる簡単な文字列を埋め込んだもの。つまり、HTMLのファイルは単なるテキストファイルになる。 HTMLのファイルとして、守らなければならない最小限の構造は下記のとおり。

<HTML>
<HEAD>
<TITLE>タイトル</TITLE>
</HEAD>
<BODY>
ここが表示される中身
</BODY>
</HTML>

ここにあるように、<>で囲まれているのがタグ。多くのタグは、<HTML>〜</HTML>のように内容を挟み込める対形式になっている。タグを1つ1つ説明していると、これだけで誌面が尽きてしまう。
とりあえず、上記の構造をこのまま覚えてほしい。<TITLE>〜</TITLE>で囲まれているのが「タイトル」、<BODY>〜</BODY>で囲まれているのが「本文(ボディ)」ということで、先に進もう(図2)。


(タイトル表示)

<HTML>
<HEADER><TITLE>
Macintosh Spec DB
</TITLE></HEADER>

ボディ(本文)

<BODY>
<IMG SRC="jpeg/pm9600_233.jpg"><P>
Power Macintosh 9600/233<BR>
<UL>
<LI>233MHzのPowerPC604eマイクロプロセッサを搭載
<LI>浮動小数点演算ユニットを搭載
<LI>64KBキャッシュメモリを搭載
<LI>512KB(固定)二次キャッシュメモリを搭載
<LI>より高速なマイクロプロセッサにアップグレード可能
</UL>
<HR>
</BODY></HTML>

図2 HTMLファイルの構造


<TITLE>タグと<BODY>タグの分かれ目に注意 グラフィックを表示したいときは、
文中に<IMG SRC=“ファイル名”>という形で、画像ファイル名を指定する。
画像のフォーマットは、GIFかJPEGを使う。文の改行では、単なる改行コードは無視されてしまうので<BR>というタグを使う。レコードを区切るために引く横線は、<HR>というタグになる。


TOPへ


ファイルメーカーProからのレコードをHTMLに変換する

サンプルに使うのは、Macの簡単なスペックデータベース(図3)だ。
データベースのファイルに含む画像とは別に、同じJPEGファイルをフォルダーにまとめており、データベース中ではJPEGファイルのファイル名を入力している。


図3 今回のサンプルデータベースMacintosh Spec DBのレイアウト。


このテーブルの指定のフィールドをHTMLに変換する。
まず、ファイルメーカーProのレコードの内容を取り出す必要がある。
これは前回までの、Eudora Proとの連携で使った手法とほとんど同じだと考えていい。
ファイルメーカーProで検索/ソートした結果のソースは、SampleScripts Vol.3に収録される「Script1」のとおりだ(表も参照)。

フィールド名

内容

タイプ

Machine_name

機種名

テキスト

Pic_Filename

画像ファイル名

テキスト

Topics

仕様など

テキスト

表 サンプルデータベースのフィールド今回のスクリプトで使っているものをリストアップした。

HTML作成の際に必要となる定数(ファイルの出力先やファイル名、画像フォルダーのパス名など)はスクリプトの先頭で宣言しているので、必要に応じてここを変更する。今回は、Topicsというフィールドの中に、
・項目1
・項目2
・項目3 と入力されているのを
<UL>
<LI>項目1
<LI>項目2
<LI>項目3
</UL> とHTMLで表現する。これにより、WWWブラウザーに表示させたときに、
●項目1
●項目2
●項目3

このようにきれいにリスト表示させることができる。これは、HTMLのリスト表示機能だ。
関数 changeToHtmlList(str)は、ファイルメーカー上で個条書きしているフィールドの内容を、HTMLのリスト機能を使って表示できるように変換する関数である。単なる文字変換の関数なので、ほかにも応用可能だ。


テキストファイルの作成

今回のスクリプトのポイントは、テキストファイルの作成だ。まず、ファイルメーカーProのレコードの内容を取得しながら、HTMLのテキストを文字列変数の中に作っていく。例えば、こういうスクリプトになる。
set aHTML to aHTML & "<BODY>" & return  AppleScriptでの基本的な変数代入は、set A to Bという書式である。これで、Bの内容をAに代入するという式になる。上記の式では、変数aHTMLのあとに、<BODY>という文字列を連結する。その後のreturnは改行を表すシステム変数だ。これにより、aHTMLの後ろに"<BODY>(改行)"という文字列をつなげた内容が、改めてaHTMLに代入される。
これをファイルメーカーProの情報を得ながら繰り返していくと、変数aHTMLの中に目的のテキストが出来上がる。
AppleScriptではnew file命令で、このダイアログを表示できる
aHTMLの内容が完成したら、この中身をテキストファイルとして出力する(図4)。


図4 HTMLとして保存するファイル名を入力する


テキストファイルへの出力は、まずopen for access with write permissionで新規テキストファイルを開く。このopen for accessが成功すると整数が戻ってくるので、これを変数に入れておく。この整数は「ファイルハンドル」と呼ばれるもので、以後ファイルを閉じるときやファイルの書き込み先などは、このファイルハンドルを使って指定する。実際に、writeやcloseでこのファイルハンドルを使っていることがわかる。
また、エラーが発生したときには、ファイルをクローズするのも定石だ。このtry〜on errorはAppleScriptでエラー処理をするための構文。try〜on errorの間の処理でエラーが発生すると、on error〜end try間の処理を実行する。ここでclose文を実行して、ファイルを閉じておこう。
テキストファイルの作成はよくある処理だが、大抵の場合このまま使い回すことができるので、ぜひ利用してほしい。これで起動ディスクの中にファイルが作成されているはずなので、NetscapeなどのWWWブラウザーで開いてみよう(図5)。このとき、画像ファイルが入っているフォルダーを、作成したHTMLファイルと同じ階層に置くことを忘れないように。


図5 結果をWWWブラウザーで表示した。

データベースの内容がHTMLに変換されている以上の方法でHTMLファイルを作成できるようになったが、べたっとしたレイアウトであまりかっこよくない。
次回は、テーブルなどを使いながら、見た目や使い勝手をブラッシュアップして、汎用的に使える処理を目指す。
お楽しみに!

[*1] WebSTAR 米クオーターデック社/米スターナイン・テクノロジーズ社が開発したMac用WWWサーバーソフト。漢字Talk 7以上のシステム、SE/30以上のMac全機種に対応する。
国内では(株)SRAが販売しており、価格は8万5000円から。
[*2] Tango for FileMaker Pro 加エブリウェア・デベロップメント社が開発した、ファイルメーカーPro Ver.3.0をWWWと連携させるCGIソフト。通常CGIを利用するためにはプログラミング技術が必要だが、フォームビルダーで使いたいレイアウトを指定し、パレットからフィールド名をドラッグ&ドロップするだけでレコードの検索/更新/削除――が可能。
国内では(株)内田洋行が販売しており、価格は7万円。

TOP

AppleScript救急隊事務局(ASQs) info-asqs@fsight.co.jp

主催 株式会社フォーサイト   後援 アップルコンピュータ株式会社

(c)1996-2010 The ForeSight Inc. All rights reserved.
Appleは、米国アップルコンピュータ社の登録商標です。
AppleScriptは、米国アップルコンピュータ社の商標です。
その他記載の会社名・製品名・ソフトウェア名は一般にその会社の登録商標または商標です。