<文字列の置き換え、Replace関数を使用> こんにちは、Ken3です。 今回は、 文字列を置換える関数、 Replace関数を使ってみます。 たいした話じゃないので、あまり期待しないでね。 /* * 1.Replace関数のテスト */ 文字列を置換する関数で、 Replace関数 ってのがあるらしい。 へぇ〜、そうなんだ。 チョット試してみよう。 -- test021-1.asp <%@LANGUAGE=VBScript%> <html> <head> <title>文字列の置き換え、Replace関数を使用</title> </head> <body> <h2>文字列の置き換え、Replace関数を使用</h2> test021-1.asp<br> 動作仕様:<br> よくある文字列の置き換え処理です<br> 書き方は簡単で、<br> 変換後 = Replace(元の文字列, 変換したい単語, 置換える単語)<br> です。<br> moji = "こんな三流プログラム見たこと無いよ"<br> moji = Replace(moji, "三流", "キタナイ") '三流をキタナイに置換え<br> ↓結果は、<br> <% dim moji moji = "こんな三流プログラム見たこと無いよ" moji = Replace(moji, "三流", "キタナイ") '三流をキタナイに置換え Response.Write moji & "<BR>" %> ↑うまくいったかなぁ?<br> <hr> <% Call OUT_SRC() 'ソースの表示関数を呼ぶ %> </body> </html> --- 使い方は簡単で、 moji = "こんな三流プログラム見たこと無いよ" moji = Replace(moji, "三流", "キタナイ") '三流をキタナイに置換え Response.Write moji & "<BR>" みたいに、 変換後 = Replace(元の文字列, 変換したい単語, 置換える単語) です。 オイオイ、サンプルならウケ狙って、 moji = Replace(moji, "三流", "一流") にしてよ(笑) 結果は、わかるよね(笑) /* * 2.Replace関数を使って、タグの追加を考える */ この前作成した、ASPソースを表示するサブルーチン覚えてますか? 表示は出来てるんだけど、なんか見にくくて。 htmlって、必要なタグで囲むといろいろな表現ができますよね。 <b>キーワード</b>とやると、キーワードが強調表示されます。 そんなの知ってるよ、だから何? えっと、 moji = "こんな三流プログラム見たこと無いよ" moji = Replace(moji, "三流", "<b>三流</b>") '<b>〜</b>で囲う Response.Write moji & "<BR>" とやると、三流の文字が<b>三流</b>に置換わり、 強調表示されます。 これを使用して、講座のテーマ、サンプルのキーワードを指定して、 強調表示させてみたいなぁとフト思いました。 あと、VBScriptの部分、 <% 〜 %>で囲まれているので、 色を変えてみようかなぁ。 /* * 3.ソース表示の関数を変更する */ インクルードファイルに書いた、 ソースの表示関数を修正してみました。 -- out_src.inc <% 'ソースの表示関数 SUB OUT_SRC(strB) 強調表示する単語をもらう Sub OUT_SRC(strB) 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") ' スクリプト(strSCR_NAME)を読取専用モードで開きデータを読む Set ts = objFS.OpenTextFile(Server.MapPath(strSCR_NAME), 1, True) Do While ts.AtEndOfStream = False 'ファイルの終端になってない間ループ strDATA = ts.ReadLine 'ファイルからデータを一行を読む '読み込んだデータをServer.HTMLEncodeで変換表示 strDATA = Server.HTMLEncode(strDATA) '次に、強調文字、<%、%>の置換え処理を行う strDATA = Replace(strDATA, strB, "<b>" & strB & "</b>") '強調 strDATA = Replace(strDATA, "<%", "<font color='blue'><%") '青にする strDATA = Replace(strDATA, "%>", "%></font>") 'カラー終了 '表示を行う Response.Write strDATA Response.Write chr(13) & chr(10) '改行する Loop '使ったファイルは閉じようよ ts.close Response.Write "</PRE>" 'ここまで Response.Write "<HR>" '<HR>で区切る End Sub '関数はここまでですよ。 %> ---- ポイントは、 Sub OUT_SRC(strB) 引数で強調したいキーワードをもらいます。 あとは、変換関数を並べただけ まず、読んだデータをエンコードする ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ '読み込んだデータをServer.HTMLEncodeで変換表示 strDATA = Server.HTMLEncode(strDATA) なんて言ってるけど、Server.HTMLEncode関数頼り(笑) タグを挿入(置換える) ^^^^^^^^^^^^^^^^^^^^^ '次に、強調文字、<%、%>の置換え処理を行う strDATA = Replace(strDATA, strB, "<b>" & strB & "</b>") '強調 strDATA = Replace(strDATA, "<%", "<font color='blue'><%") '青にする strDATA = Replace(strDATA, "%>", "%></font>") 'カラー終了 ここでのポイントは、 私がしくじったのは失敗を先に書くと、 strDATA = Replace(strDATA, "<%", "<font color='blue'><%") '青にする とやってしまい、 上のServer.HTMLEncode関数で<%は&lt;%に置換わってたんですね。 なので、正解は変換された文字をさらに置換えて<Font>を足す、 strDATA = Replace(strDATA, "<%", "<font color='blue'><%") '青にする だったんですね。 う〜ん深い。 えっ、テメエがデータの変化に付いて行けなかったダケ?だって? お恥ずかしい。。。(マジであせりました、できなくって(笑)) http://www.ken3.org/cgi-bin/test/out_src.inc が修正したソース表示の共通ファイルで、 http://www.ken3.org/cgi-bin/test/test021-1.asp で無事強調表示とスクリプト部分が青色になってます。 *見て下さいね。 /* * 4.終わりの挨拶 */ 今回は、 ・Replace関数で置換え処理 でした。 素朴な疑問あったら、気軽に、 メール、掲示板に書き込んでくださいね。 ASP、VBScript勉強中の三流プログラマーのKen3でした。
ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、
感想や質問・要望・苦情など 三流君へメッセージを送る。
下記のフォームからメッセージを送ることができます。
[三流君(TOP ken3.org へ戻る)]
/ [ASPで遊ぶ、失敗する]
/ [ASP記事 バックナンバー目次]
まぁ、基本はデータの受け取りかなぁ。
・[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記事 バックナンバー目次]