●「牛の臨床」CD−ROMを改造する 現在、いろいろな出版物にCD−ROM付録がついています。それらと当CD−ROMを比較しますと 「見た目がショボイ」という感想をお持ちになったことと思います。しかし、それには訳があります。当C D−ROMの最大の特徴は「ユーザーが簡単に改造できる」ことです。現在のバージョンで不満な部分の訂 正・追加が容易に出来るばかりか、その気になれば表の中身をそっくり入れ替えて全く違うデータを管理す る簡易データベースに応用することも可能でしょう。もちろんプログラムの知識がなくても大丈夫です。 以下、簡単なマニュアルを示します。疑問・意見等ありましたらデーリィマン社出版部・重堂恭介(email:syuppan@dairyman.co.jp)までメールでお問い合わせ下さい。 ----------------------------------------------------------------●改造の準備について 1.当然のことながらCD−ROMそのものを書き換えることはできません。ただしこのCD−ROMはコ ピープロテクトを採用しておりませんので、CD−ROM内の全ファイルをハードディスク等にコピーして 使用することができます。一旦コピーしたファイルには手を加えることができます。 注)コピーフリーではありますが、データについての著作権は放棄しておりません。有償・無償に関わらず、 複製もしくは改変して、他者へ配布することは認めておりませんので、ご理解お願いします。(本の監修者 や著者が著作権を有するのは写真や文章の部分です。無論、写真や文章を完全に入れ替えた場合は問題あり ません) 2.CD−ROMからハードディスクへコピーされたファイルは、ファイル属性が読み取り専用となってい るため、そのままでは書き換えができません。該当ファイルを選択しプロパティを表示(ウインドウの上バ ーの「ファイル(F)」を選択した時に表示されるメニューの「プロパティ(R)」をクリックします)し、 「属性」欄の「読み取り専用」のチェックボックスにあるチェックを外して下さい。 3.CD−ROM内には以下の4種類のファイルが入っています。その中で、(a)および(b)は書き換 えることができます。それによってデータの追加や更新が可能です。 (a)「∼.htm」という名前のついたファイル・・・・HTMLファイルです。このソフトの本体ですが、 テキストファイルですので、ワープロソフトやワードパット、メモ帳などで書き換えできます。 (b)「DATA.csv」・・・コンマで区切られているテキストファイルです。(このソフトの最重要部分で す)もちろん(a)同様にワードパット等で書き換えることも可能ですが、Excel やロータス等の表計算ソ フトで開いた方が作業が簡単です。 (c)「∼.jpg」という名前のついたファイル・・・表示される写真です。 (d)「readme.txt」および「autorun.inf」・・・「CD−ROMの説明・注意書き」と「オート立ち上げ のためのセットアップ情報ファイル」です。この2つは無くても問題ありません。 4.このCD−ROMの仕組み 上記の3.にもあるように、このCD−ROMには実行ファイル(「∼.exe」と表記されている、いわゆ るプログラム)は入っておりません。写真以外は全てテキストファイルです。HTMLを 「InternetExplorer」で開く、要はインターネットのホームページとまったく同じ仕組みなのです。HTM Lファイルもフレーム分けやチェックボックス等、全体構造は簡単なものがほとんどです。上記のワープロ や表計算ソフトがあれば問題なく改造できます。プログラマーが仕事で使用しているような難しいソフト・ 高価なソフトは必要ありません。 注)HTMLには、一部「JavaScript」が使用されています。その部分については本文の最後の方で説明し ます。改造自体は「JavaScript」の部分にほとんど手をつけなくてもできます。 ----------------------------------------------------------------●改造の方法 まずは表計算ソフト等で「DATA.csv」を開き、まず1行目をご覧下さい。ずらりと項目が並んでいます。 それぞれの項目の下に続いている列には以下のような文字データが記入されています。 (a)「No:int」:本書での掲載箇所(章)が記載されています。病名の変更、並び替えをしない限り、特 に書き換えの必要はないでしょう。 (b)「PHOTO」:検索画面に表示される写真です。写真が表示されない病気については「WHITE.jpg」と記 入されています。写真を差し替える場合は3.を参照下さい。 (c)「解説」:検索画面に表示される「病気の簡単な概要」が書かれています。この部分を書き換えれば 検索画面に表示される文章が変わります。但し、文章の長さによっては途中までしか表示されない場合があ りますので、できるだけ簡潔に記入願います。 (d)「cap」:写真の下に表示される文章が記入されています。写真が表示されない病気については空欄と なっています。 (e)「test:int」:検索プログラムが使用します。この項目にはすべて「1」と記入されています。(この 部分は書き換え不可です。必ず「1」を入れてください) (f)「病名」:病名が記載されています。ここを書き換えれば、検索画面に表示される病名が書き換えら れます。(新たに病気を追加する場合は、ここの列に追加記入します。詳しくは2.を参照ください) (g)それ以降は、「症状」:int が並んでいます。それぞれの列には「0」または「1」の数字が記入されて います。「病名」と「症状」が合っていない場合、ここを書き換えることにより訂正することができます。 2.を参照ください。 以下、改造方法です。 1.「病名」「解説」を書き換える →「DATA.csv」を書き換えます。書き換える箇所は、上記の通り、(c)(d)(f)の列です。 2.検索結果を訂正する、あるいは追加する ○新たな「病気」を追加する →「DATA.csv」に新たな行を追加します。上記(g)のデータ記入方法は以下の通りです。 ○「病名」と「症状」を合わせる →(g)の列に記入されている「0」または「1」の数字の意味は、 「病名」に「症状」が対応している場合=「1」 「病名」と「症状」が無関係の場合=「0」 となっています。間違いを発見した際は書き換えて下さい。新たな病気を追加した場合も、症状の欄の数 字はすべて記入して下さい。(ここの数字は半角文字で記入しなければなりません。間違わないように) ○「症状」を書き換える、順序を替える、または追加する →これらの場合は「DATA.csv」の書き換えだけでなく、「Left.htm」という名のファイルを書き換える必 要があります。Windows の「メモ帳」でも書き換えは可能ですが、書き換え箇所が多い場合は「一括変換」 コマンドで書き換える方法が簡単なので、ワープロソフトあるいはワードパッドを使った方が良いでしょう。 まず、これまでの改造手順同様に「DATA.csv」を開き、症状を書き換えたり、並べ替えたり、症状の項目 を追加(必ず列単位で削除・追加をして下さい。数字「0」「1」が並んでいる部分に空欄を空けないように !)した後、「Left.htm」を開き、次の書き換えを行います。 ①「DATA.csv」の症状名を書き換えた場合: 「Left.htm」も記載されている症状名を同様に全て書き換えます。 例えば「くしゃみ:int」を「あくび:int」と書き換えた場合、「Left.htm」の中に2箇所出てくる「くし ゃみ」を「あくび」に書き換えます。 ②順番を替えた場合: 「DATA.csv」の症状順を入れ替えた場合は、「Left.htm」の記載順も入れ替えます。「Left.htm」の中に 2箇所、症状名が縦列していますが、どちらの上→下の項目順は、「DATA.csv」の左→右の項目順と一致し ています。 例えば「DATA.csv」の症状で一番左にある「貧血:int」と、一番右にある「飼料との関連:int」の列を入 れ替える場合、「Left.htm」の症状が並んでいる箇所の「貧血」を一番下に、「飼料との関連」を一番上に 置きます。(要は「貧血」と「飼料との関連」を入れ替えればよいわけです) ③症状の項目を削る、あるいは新しい症状を追加する: これらは、ここまでの改造手順と比較して若干難しいです。また「DATA.csv」を開いた時に気が付くこと ですが、「症状」項目の追加可能数はそう多くはありません。 まず、症状項目を削る場合ですが、以下(1)→(2)→(3)→(4)の手順で書き換えます。 (1)「Left.htm」の 21 行目以降を見ますと: function filterRec() { {count=0 for(i=0;i<=125;i++) if(document.myform.elements[i].checked)count++; } if(count != 0) { if(document.myform.CB1.checked)var cond1="貧血=1";else {var cond1="test=1"}; 以下、if(document ∼ ="test=1"};という形の行がしばらく続いています。 →まず始め行の方にある for(i=0;i<=125;i++) の「125」という数字を書き換えます。入る数字は「症状の項目数−1」です。 (全く手を加えていなければ、全部で 126 項目あるわけです) →続いて if(document ∼ ="test=1"}; という行の書き換えですが、各行の真ん中あたりを見ると cond1="貧血=1" のように「症状名=1」という文字が入っていますので、削除する症状が書かれている行を探し、行全体を 削除します。 →削除作業の終了後に各行を見ると、削除前には行の順番通りに 1 から 126 まできれいに並んでいた 「if(document.myform.CB」の後に付いている数字 「cond」の後に付いている数字(各行に2箇所あります) が飛び飛びになっているはずです。この数字を、また 1 から順にならぶよう書き換えて下さい。 例えば: if(document.myform.CB1.checked)var if(document.myform.CB2.checked)var if(document.myform.CB3.checked)var if(document.myform.CB4.checked)var if(document.myform.CB5.checked)var if(document.myform.CB6.checked)var cond1="貧血=1";else {var cond1="test=1"}; cond2="黄疸=1";else {var cond2="test=1"}; cond3="可視粘膜チアノーゼ=1";else {var cond3="test=1"}; cond4="出血性素因=1";else {var cond4="test=1"}; cond5="浮腫=1";else {var cond5="test=1"}; cond6="頸静脈の怒張=1";else {var cond6="test=1"}; のうち、3行目「可視粘膜チアノーゼ」を削除した場合には if(document.myform.CB1.checked)var if(document.myform.CB2.checked)var if(document.myform.CB3.checked)var if(document.myform.CB4.checked)var if(document.myform.CB5.checked)var cond1="貧血=1";else {var cond1="test=1"}; cond2="黄疸=1";else {var cond2="test=1"}; cond3="出血性素因=1";else {var cond3="test=1"}; cond4="浮腫=1";else {var cond4="test=1"}; cond5="頸静脈の怒張=1";else {var cond5="test=1"}; のように続く行の数字を「詰めて」いけばOK!です。 (2)続いてずっと見ていきます。if(document ∼ ="test=1"};という形の行がとぎれた後、 var cond_all = cond1 + "&" + cond2 + "&" + ・・・・・・ + "&" + cond126 ; という、「長い足し算の式」のような文があります。この式にある「cond」という記号は(1)の作業をし た行にも入っていました。そこで →(1)で書き換えた す。 if(document ∼ ="test=1"}; の最終行の「cond」で終わるように式を切りま 例えば: 症状の項目を5つ減らした場合、最終行は if(document.myform.CB241.checked)var cond121="●●●=1";else {var cond121="test=1"}; ※注・・・●●●には症状名が入ります。 となっているはずです。したがって「長い足し算」は var cond_all = cond1 + "&" + cond2 + "&" + ・・・・・・ + "&" + cond121 ; で打ち止めにします。式の最後には「 ;」が付きます。半角スペースを忘れないように(書き換えの際に 最後の部分を消さなければ安心ですね) (3)「長い足し算」の下、10 行目に function clearCB() { for(i=0;i<=125;i++)document.myform.elements[i].checked=false; var cond_all="test=1" parent.Rg.dataFunc(cond_all); parent.Rrg.dataFunc2(cond_all); } と書いてあります。 →ここの for(i=0;i<=125;i++) の真ん中の数字「125」を「症状の項目数−1」に書き換えます。 (1)の一番最初にやった作業と同じ要領です。 (4)さらに 14 行ほど進むと: <p> <BUTTON onclick="filterRec() ;">診 断</BUTTON> <BUTTON onclick="clearCB() ;">clear</BUTTON> </p> <br> <form name="myform"> <input type="checkbox" name="CB1">貧血<br> 以下 <input type="checkbox" name="CB ・・・・・・<br>という形の行が続いています。 →(1)で if(document ∼ ="test=1"}; の形の行を削った要領で <input type="checkbox" name="CB ・・・・・・<br>の行も削除します。 例えば: <input <input <input <input <input <input type="checkbox" type="checkbox" type="checkbox" type="checkbox" type="checkbox" type="checkbox" name="CB1">貧血<br> name="CB2">黄疸<br> name="CB3">可視粘膜チアノーゼ<br> name="CB4">出血性素因<br> name="CB5">浮腫<br> name="CB6">頸静脈の怒張<br> の3行目「しぶり」を削除した場合は <input <input <input <input <input type="checkbox" type="checkbox" type="checkbox" type="checkbox" type="checkbox" name="CB1">貧血<br> name="CB2">黄疸<br> name="CB3">出血性素因<br> name="CB4">浮腫<br> name="CB5">頸静脈の怒張<br> のように「CB」の後ろの数字を「詰めて」いけばOK!です。 以上(1)∼(4)で「Left.htm」の書き換えは終了です。これで症状項目を減らすことができました。 項目を増やす場合は、これまでの作業の「減らす」部分を「増やす」に換えればOK!です。 要するに: (1)’ 「Left.htm」の 21 行目以降から作業スタート。 →for(i=0;i<=125;i++) の「125」という数字を「症状の項目数−1」に書き換える。 →if(document.myform.CB◎.checked)var cond◎="●●●=1";else {var cond◎="test=1"}; を追加する。尚、●●●には症状名、◎には項目の順番が入ります。 (2)’ →「長い足し算」に追加された項目数だけ「+ "&" + cond◎」を追加する。 var cond_all = cond1 + "&" + cond2 + "&" + ・・・・・・ + "&" + cond◎ ; (3)’「長い足し算」の下、10 行目に →for(i=0;i<=125;i++) の「125」という数字を「症状の項目数−1」に書き換える。 (4)’さらに 14 行ほど進み: → <input type="checkbox" name="CB◎">●●●<br> を追加する。●●●には症状名、◎には項目の順番が入ります。 という作業をすれば完成です! 3.写真を差し替える、あるいは追加する。 →新たに使用する写真データ(J-peg 形式の画像データ、「∼.jpg」という名のついた写真データを使用 する)を他のファイルと同じフォルダに入れる。 →「DATA.csv」を開き、対応する病気の(c)「PHOTO」の列に記載されているファイル名を消し、新しい 写真データの名前を入れれば完了です。 以上、「症状」の項目に変更を加える場合以外は、「DATA.csv」の書き換えだけでOK!という、実にシ ンプルな設計となっています。どんどん直しを入れ、より正確・便利なデータベースを完成させてください。 ----------------------------------------------------------------●さらに手を加えるには(少々難しい話) 「立ち上げた時にタイトル画面が欲しい」「写真サイズを大きくしたい」「いちいち診断ボタンを押さな くても検索できるようにしたい」「フレーム分けでなく、独立したウインドウが開くようにしたい」などな ど、まだまだ改造したい部分があるかと思います。また、「Excel のデータさえあれば、検索やデータの部 分表示ができるとは!、じゃあ別のこと、例えば住所録なんかに応用できないだろうか?」と思った方もい るでしょう。 これらを実現するには多少の勉強が必要でしょう。ただし、あくまでもHTMLですから、インターネッ ト・ホームページを作る技術があれば、かなりのソフトが作れるはずです。市販のホームページ入門書籍等 を参考に、いろいろチャレンジしてみてください。以下、参考資料です。 (1)JavaScript 「Left.htm」を見ますと、 <script language="JavaScript"><!-function filterRec() { {count=0 for(i=0;i<=125;i++) if(document.myform.elements[i].checked)count++; } if(count != 0) { if(document.myform.CB1.checked)var cond1="貧血=1";else {var cond1="test=1"}; ・・・・・・・・ 上記のような行が見つかります。これが「JavaScript」というもので、「ホームページの標準機能に表現力 を追加するためのプログラム」と言う程度に思って頂ければ結構です。「JavaScript」について解説してい る入門書もたくさんありますのでいろいろ研究してみてください。 (ヒント)このソフトの基本構造は、 「Left.htm」にチェックを入れる → 「Right.htm」の一覧表データを書き換える 同時に「Rright.htm」上で写真や説明が見れる と、言うものです。ちょっと考えると、とても複雑なことを行っているようですが、「Right.htm」 「Rright.htm」をメモ帳で開いてみると、書かれている行数が意外と少ないことが分かるでしょう。 このソフトでの JavaScript のミソは、「異なるホームページ間で数字データをやり取りする」ことです。 この「データのやり取り」について書かれている参考書を探し、参考にしてみてください。 (2)データバインド 「Right.htm」や「Rright.htm」をメモ帳で開いてみると、ホンの数行しか書かれていない。なぜかという と、「InternetExplorer には、表のデータさえあれば、簡易データベースに早変わりする」機能がもともと 備わっているからです。これを「データバインド」と言います。 「Rright.htm」HTMLの一番下の方に書かれている、 <OBJECT ID="testData" CLASSID="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"> <PARAM NAME="DataURL" VALUE="DATA.csv"> <PARAM NAME="UseHeader" VALUE="true"> この3行を入れることによりデータベースとなってしまう、実に驚きの「隠し機能」です。 でも、なぜかMac版の InternetExplorer は、データバインドに対応していないのです。いずれは対応す ると信じていますが・・・。 この「データバインド」についての詳細な参考書は、おそらく日本に1冊しかありません。 カットシステム社刊/井上健語著「データバインド入門」です。また著者の井上健語さんのホームページに も詳細な解説が載っています。「猫の臨床」付録 CD-ROM を見て、データバインドに興味を持った方は、これ らを一読することをお薦めいたします。
© Copyright 2024 Paperzz