元の三流解説は、
三流君ASP:Split関数で複数キーワードをスペースで分解する
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・
ソースコード
<%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>キーワード分解 Replace関数とSplit関数とUBound関数</title> </head> <body> <h1>キーワード分解 Replace関数とSplit関数とUBound関数</h1> test081-1.asp<br> スペースで区切って好きな言葉を入れてください(全角半角スペースまぜてね)<br> <FORM ACTION="test081-1.asp" METHOD="POST"> <INPUT TYPE="text" SIZE="60" NAME="DATA" VALUE="AB 型 三流君 ←全角"><BR> <INPUT TYPE="submit" VALUE="分割実行"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> 分割実行ボタンを押すとReplace関数で全角スペースを半角に置換してから<br> Split関数とUBound関数を使用してデータ分割表示します<br> <br> <% '入力パラメーターDATAがあるかチェックする If IsEmpty(Request.Form("DATA")) = False Then Response.Write "<hr><b>テスト結果</b><br>" 'データが入力されていたら、バラして表示する Dim strMOTO strMOTO = Request.Form("DATA") 'Postで受け取ったデータ Response.Write "元のデータは、[" & strMOTO & "]です<br>" '全角スペース□を半角スペースに置き換える strMOTO = Replace(strMOTO, " "," ") 'スペースでデータをバラす strBOX = Split(strMOTO, " ") '区切り文字にスペース指定 'ループでデータを表示させる For i = 0 To UBound(strBOX) 'UBound使用インデックス最大値までループ Response.Write "<BR>" Response.Write "strBOX(" & i & ") -- " '変数名表示 Response.Write strBOX(i) '中身を表示 Next End If %> <hr> 処理概要:<br><code> 全角スペース□を半角スペースにReplace関数で置換する<br> strMOTO = Replace(strMOTO, " "," ")<br> その後、Split関数を使用して、スペース指定で配列を作成する<br> strBOX = Split(strMOTO, " ")<br> Split関数で配列を作成後、<br> 'ループでデータを表示させる<br> For i = 0 To UBound(strBOX) 'UBound使用インデックス最大値までループ<br> とUBound関数で配列の要素数を判断、ループさせてます。</code><br> </body> </html>
↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test081-1.asp← 実行する
ソースコード
<%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>キーワードをスペースで分解するサンプル</title> </head> <body> <h1>キーワードをスペースで分解するサンプル</h1> test081-2.asp<br> スペースで区切って好きな言葉を入れてください(全角半角スペースまぜてね)<br> <FORM ACTION="test081-2.asp" METHOD="POST"> <INPUT TYPE="text" SIZE="60" NAME="DATA" VALUE=" 背が高い お金持ち 高学歴 マンション "><BR> <INPUT TYPE="submit" VALUE="分割実行"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> 分割実行ボタンを押すとReplace関数で全角スペースを半角に置換してから<br> Split関数とUBound関数を使用してデータ分割表示します<br> <br> <% '入力パラメーターDATAがあるかチェックする If IsEmpty(Request.Form("DATA")) = False Then Response.Write "<hr><b>テスト結果</b><br>" 'データが入力されていたら、バラして表示する Dim strMOTO strMOTO = Request.Form("DATA") 'Postで受け取ったデータ Response.Write "元のデータは、[" & strMOTO & "]です<br>" '前後のスペースを取り除くためTrimを使用する strMOTO = Trim(strMOTO) '全角スペース□を半角スペースに置き換える strMOTO = Replace(strMOTO, " "," ") 'さらに、半角スペースn個を半角スペース1個にする For rCNT = 1 To 10 '複数スペースを最大10までカット(1つに)する strMOTO = Replace(strMOTO, " "," ") Next 'スペースでデータをバラす strBOX = Split(strMOTO, " ") '区切り文字にスペース指定 'ループでデータを表示させる For i = 0 To UBound(strBOX) 'UBound使用インデックス最大値までループ Response.Write "<BR>" Response.Write "strBOX(" & i & ") -- " '変数名表示 Response.Write strBOX(i) '中身を表示 Next End If %> <hr> 処理概要:<br><code> 前後のスペースを取り除くためTrimを使用する<br> strMOTO = Trim(strMOTO)<br> <br> 全角スペース□を半角スペースにReplace関数で置換する<br> strMOTO = Replace(strMOTO, " "," ")<br> <br> スペースn個を1つのスペースにする<br> For rCNT = 1 To 10 '複数スペースを最大10までカット(1つに)する<br> strMOTO = Replace(strMOTO, " "," ")<br> Next<br> <br> その後、Split関数を使用して、スペース指定で配列を作成する<br> strBOX = Split(strMOTO, " ")<br> Split関数で配列を作成後、<br> 'ループでデータを表示させる<br> For i = 0 To UBound(strBOX) 'UBound使用インデックス最大値までループ<br> とUBound関数で配列の要素数を判断、ループさせてます。</code><br> </body> </html>
↑をテスト実行する→http://www.ken3.org/cgi-bin/test/test081-2.asp← 実行する
↑コードの三流解説は、
三流君ASP:Split関数で複数キーワードをスペースで分解する
を見て、笑ってやってください。
今回は、
キーワードの分解処理に挑戦してみました。
Split関数を使用するのですが、その前に、データをキレイにするのに手間取りました。
Split単: http://www.ken3.org/cgi-bin/test/test024-2.asp (Splitのみ全角SP不可)
途中 : http://www.ken3.org/cgi-bin/test/test081-1.asp (スペースn個未対応)
最終版 : http://www.ken3.org/cgi-bin/test/test081-2.asp (前後スペース、対応)
で、テストできます。遊んでみてください。
もっと、想定外の操作ってあったりするけど、
何かの参考となれば幸いです。
ASPの解説 トップページは
三流君ASPで遊ぶ、失敗する
です。こちらもよろしく・・・