[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.020 インクルード ファイルを使ってまとめてみた

インクルード ファイルを使ってまとめてみた



本文(発行内容)


<インクルード ファイルを使ってまとめてみた>

こんにちは、Ken3です。

今回は、
インクルード ファイルを使って
処理をまとめてみたいと思います。

たいした話じゃないので、あまり期待しないでね。

/*
 * 1.同じ処理が入ってるのは、なんかなぁ。。。
*/

In message "感想",
*****8さん wrote...
 >広告見せるならソース見せろ

に反応して、ソースファイルを表示する処理を最近追加しました。

http://www.ken3.org/cgi-bin/test/test017-2.asp
でServer.HTMLEncodeを使用して変換表示、

次に、
http://www.ken3.org/cgi-bin/test/test017-3.asp
では、
Request.ServerVariables("SCRIPT_NAME")を使用して、
関数にまとめてみました。

今後のASPのサンプルの後ろに付けたので、
http://www.ken3.org/cgi-bin/test/test018-1.asp
を実行すると、無事にASPのソースファイルも表示されます。

でも、なんかバカっぽいよね。
      ^^^^^^^^^^^^^^^^^^^^^
えっ、どこが?
広告表示からソース表示に変えたよ。結果とプログラムも見れるし。

そのソースの表示関数が
いつも最後に、それも含めてASPの中身が表示されるジャン。
^^^^^^
なんかまぎらわしいんだよね。

それに、いつも最後に入れてるのって、変だしね。

言われて見れば、、、何か共通で使う方法ってあるはずだから探してみるか。

/*
 * 2.ファイルをインクルードする
*/
ファイルをインクルードって、
聞きなれない言葉かもしれないけど、
好きな位置に指定したファイルを入れた状態にできます。

書き方は簡単で、
<!-- #include file ="header1.inc" -->
これを、ASPのファイルの中に入れておくと、
自動的にheader1.incファイルを読みとって、
中身を挿入してくれます。

簡単に2つのファイルにわけた例を書くと、

-- test020-1.asp  普通のASPファイル
<%@LANGUAGE=VBScript%>
<html>
<head>
<title>インクルードファイルの使用</title>
</head>
<body>
<h2>インクルードファイルの使用</h2>
test020-1.asp<br>
動作仕様:<br>
out_src.incを読み込み、よく使う処理をまとめてみます<br>
さてさて、どうなることやら、、、<br>
<hr>

<% Call OUT_SRC() 'ソースの表示関数を呼ぶ %>

</body>
</html>

<!--  #include file="out_src.inc" -->

---ここまで、

-- ここから、out_src.inc
<% 'ソースの表示関数  SUB OUT_SRC() out_src.incに移しただけ

Sub OUT_SRC() 

  Dim strSCR_NAME

  strSCR_NAME = Request.ServerVariables("SCRIPT_NAME")  '名前を代入

  '見出しの表示
  Response.Write "<HR><b>" & strSCR_NAME & "</b><HR>"
  Response.Write "<PRE>"  'スペースを有効にするため

  ' FileSystemObjectを生成します、、って英文、そのままジャン。
  Set objFS = Server.CreateObject("Scripting.FileSystemObject")

  '*5 スクリプト(strSCR_NAME)を読取専用モードで開きデータを読む
  Set ts = objFS.OpenTextFile(Server.MapPath(strSCR_NAME), 1, True)

  Do While ts.AtEndOfStream = False  'ファイルの終端になってない間ループ
    strDATA = ts.ReadLine   'ファイルからデータを一行を読む
    '*1読み込んだデータをServer.HTMLEncodeで変換表示
    Response.Write Server.HTMLEncode(strDATA)
    Response.Write chr(13) & chr(10)   '改行する
  Loop

  '使ったファイルは閉じようよ
  ts.close

  Response.Write "</PRE>"  'ここまで
  Response.Write "<HR>"    '<HR>で区切る

End Sub  '関数はここまでですよ。

%>
----

と、2つのファイルにわけてあります。

test020-1.asp内の最後、
<!--  #include file="out_src.inc" -->
の記述で、out_src.incが挿入されるので、
同じように処理でき、
処理もまとまってます。

http://www.ken3.org/cgi-bin/test/test020-1.asp
を実行すると少し感覚がわかると思います。



/*
 * 3.別にインクルードファイルは2つでも、途中でも、関数じゃなくても
*/

<!--  #include file="ファイル名" -->
で
別ファイルに記述した関数(命令)
がそのまま簡単に入る感じです。

えっ、関数しか?書いたらダメなの?
なんだぁ、いつも変わるリンク情報やお知らせを書いて共通化したかったのになぁ。

あっ、私の言葉が足りなかったですね、
そのままファイルの内容を読みこむので、
中身はなんでもいいんですよ。
^^^^^^^^^^^^^^^^^^^^^^^^^^^
あと、インクルードの場所は、どこでもいいし、何個でも
*あまりやり過ぎると、逆に見にくくなるので注意かなぁ。

簡単な例を書くと、
頭にお知らせがあるページを作りたい場合、

まず、お知らせ用の共通な.incファイルを作成します
ここでは、名前を、info_g.incとして、中身を書きます。

-- info.inc
<HR>
今週の目標:<b>アンケート処理をまとめて、説明する予定</b><br>
<a Href="http://www.ken3.org/asp/">
[ASP系メニューへ]</a>
<a href="http://www.ken3.org/cgi-bin/bbs/asp/wforum.cgi">
[質問・感想掲示板]</A>
<a href="http://www.ken3.org/backno/backno_asp_mokuji.html">
[バックナンバー目次]</a>
<HR>
-- ここまで

と、お知らせのコメントとページのリンクを書きました。

-- test020-2.asp で、下記のように使ってます
<%@LANGUAGE=VBScript%>
<html>
<head>
<title>普通の内容をインクルードしてみた</title>
</head>
<body>
<h2>普通の内容をインクルードしてみた</h2>
↓ここから下にテストでinfo_g.incをインクルードしてみる<br>

<!--  #include file="info_g.inc" -->

↑上に挿入されてますか?<br>
test020-2.asp<br>
<hr>

<% Call OUT_SRC() 'ソースの表示関数を呼ぶ %>

</body>
</html>

<!--  #include file="out_src.inc" -->

-- ここまで


ポイントは、
↓ここから下にテストでinfo_g.incをインクルードしてみる<br>

<!--  #include file="info_g.inc" -->

↑上に挿入されてますか?<br>

の場所で、普通にHTMLタグの記述だけでも入るので、
ヘッダーをまとめたりねフッターをまとめたり、
変更があっても、元ファイルを修正しないで、
インクルードのファイルを修正するだけで
と
活用すれば、管理の幅も広がると思います。

http://www.ken3.org/cgi-bin/test/test020-2.asp
でテストできます。

-- 余談
.inc と 書いてるけど、別に拡張子も何でもOKです。
でもわかり易い名前にして下さい。

/*
 * 4.問題点は?無いの?
*/

へぇ〜、
<!--  #include file="ファイル名" -->
って、使えそうジャン、
でも、問題点はないの?

拡張子.inc、
何も設定してないと、
丸見えなんですよ。

http://www.ken3.org/cgi-bin/test/info_g.inc
http://www.ken3.org/cgi-bin/test/out_src.inc

をブラウザで見てみると(メールからクリックの自動起動でも)

ねっ、IEでは中身が表示されたでしょ
(か、ダウンロード・保存になると思います)

out_src.inc 今は見られてもいい処理しか入っていないけど、
パスワード管理のASP関係を共通化しようとして、
pas_src.inc なんかにまとめて、
使っていたりする、無頓着な人が居たら、マズイよ。

レンタルサーバーだと、
個々のファイルのセキュリティの設定できないけど、
見られたくないファイルは、
外から見えない場所に置いておかないと
(外から見えない設定しないとね)

今は、気にしなくてもいい話ですが、
頭のスミにでも入れといて下さいね。

/*
 * 5.終わりの挨拶
*/

今回は、
・ファイルをインクルードしてみた
でした。

素朴な疑問あったら、気軽に、
メール、掲示板に書き込んでくださいね。

ASP、VBScript勉強中の三流プログラマーのKen3でした。


ページフッター

ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、

三流君へ メッセージを送る

感想や質問・要望・苦情など 三流君へメッセージを送る。
返信例 XXXXさんへ
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)

種類別のリンク や 広告など

[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


Blogとリンク:[三流君のMemo別館]/ [ASP 三流君のソースコード置き場]/ [Ken3Video YouTubeで動画解説]
広告:

気になった ジャンル ↓を選択してください。

まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。

次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません

広告:



DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く

VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。



[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


広告: