過去のソースコードをアップしています、
(ブログの検索機能で利用する予定・・・)
元の三流解説は、
三流君ASP:入力、結果表示を1つに、Subで関数分割
↑を見て、笑ってやってください。
ソースコード
Call を 使った ソースコードを紹介する 表示色の説明:ASP VBScriptは <% ~ %> キーワードはCall です。 <%@LANGUAGE=VBScript%> <html> <head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis"> <title>入力、結果表示を1つのASPファイルにまとめた</title> </head> <body> <h2>入力、結果表示を1つのASPファイルにまとめた</h2> test016-1.asp<br> <hr> <% 'まずは、パラメータ有無の判断を行う If IsEmpty(Request.QueryString("a")) = False Then 'バラメーター有りの時 If Request.QueryString("a") = "99" Then Call test016_SUM() '結果表示の関数を呼ぶ Else Call test016_WRITE() '書き込みの関数を呼ぶ End If Else '↓フォームの入力処理を書く(普通のHTML) %> <FORM ACTION="test016-1.asp" METHOD="GET"> このメルマガの満足度は?選択後、送信ボタンを押してください。<br> <INPUT TYPE="RADIO" NAME="a" VALUE="6">6.大変満足、知人に教えます<br> <INPUT TYPE="RADIO" NAME="a" VALUE="5">5.満足<br> <INPUT TYPE="RADIO" NAME="a" VALUE="4">4.まぁまぁ<br> <INPUT TYPE="RADIO" NAME="a" VALUE="3">3.どちらとも言えない<br> <INPUT TYPE="RADIO" NAME="a" VALUE="2">2.少し不満<br> <INPUT TYPE="RADIO" NAME="a" VALUE="1">1.不満<br> <INPUT TYPE="RADIO" NAME="a" VALUE="0">0.かなり不満、解除します<br> <br> <INPUT TYPE="submit" VALUE="送 信"> <INPUT TYPE="reset" VALUE="入力クリア"> </FORM> <% End If %> <hr> </body> </html> <% 'ここから下にSUB関数をまとめてみました。 Sub test016_WRITE() '入力値を判断して書き込む 'アンケートの結果をまず判断する strMSG = "不正なパラメーターです" 'エラーメッセージを初期値として代入 if Request.QueryString("a") = "6" then strMSG = "大変満足" 'asp013追加 if Request.QueryString("a") = "5" then strMSG = "満足" if Request.QueryString("a") = "4" then strMSG = "まぁまぁ" if Request.QueryString("a") = "3" then strMSG = "どちらとも言えない" if Request.QueryString("a") = "2" then strMSG = "少し不満" if Request.QueryString("a") = "1" then strMSG = "不満" if Request.QueryString("a") = "0" then strMSG = "かなり不満" 'asp013追加 If strMSG = "不正なパラメーターです" Then 'エラーパラメータのままか?チェック Response.Write "データを正しく受け取れませんでした<br>" Else 'FileSystemObjectを生成します。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") 'test016.txt を追加モードで開く Set ts = objFS.OpenTextFile(Server.MapPath("test016.txt"), 8, True) 'ファイルにアンケート結果のデータを書き込む ts.write Request.QueryString("a") & "," '結果0~6を書く ts.write strMSG & "," 'ファイルに結果を書き込む ts.write Now '時刻を書く ts.write chr(13) & chr(10) '改行する '使ったファイルは閉じようよ ts.close Response.Write "あなたの回答は<b>" & strMSG & "</b>でした<BR>" Call test016_SUM() '結果表示を呼ぶ 016追加 End if End Sub Sub test016_SUM() '結果の表示関数 dim strRECORD 'レコード内容を一時保存 dim nCNT(10) 'カウンター 変数 10個もいらないけど dim nSUM '回答の合計数 nSUM = 0 '初期化する 'カウンター変数をループで初期化しておく For i = 0 to 10 nCNT(i) = 0 Next 'FileSystemObjectを生成します、、って英文、そのままジャン。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") 'test016.txt 結果ファイルを読取専用モードで開く Set ts = objFS.OpenTextFile(Server.MapPath("test016.txt"), 1, True) Do While ts.AtEndOfStream = False 'ファイルの終端になってない間ループする strRECORD = ts.ReadLine 'ファイルからデータを一行を読む 'Left関数を使って左から1文字目をCintで数値変換 i = Cint(Left(strRECORD, 1)) '読みこんだレコードの1文字目を数値変換 'nCNT(i番目)をカウントアップ nCNT(i) = nCNT(i) + 1 '*2合計数は無条件にカウントアップ nSUM = nSUM + 1 Loop ts.close '使ったファイルは閉じようよ Response.Write "<hr><h3>アンケート集計結果</h3><hr>" Response.Write "アンケート回答数<b> " & nSUM & "</b>人です" '*4回答数表示 'Array関数を使用して、評価コメントを初期化 strBOX = Array("かなり不満", "不満", "少し不満", "どちらとも言えない", _ "まぁまぁ", "満足", "大変満足") '結果の表示を<TABLE>タグを使用して表示 Response.Write "<TABLE border=1>" 'border=1で境界線(ワクを表示) Response.Write "<TR><TD>評価</TD><TD>コメント</TD><TD>人数</TD>" Response.Write "<TD>%</TD></TR>" '*3 %の見出しを追加 'ループで回して評価の集計データを表示する For i = 6 To 0 Step -1 '6~0のループを作る Response.Write "<TR><TD>" & i & "</TD>" Response.Write "<TD>" & strBOX(i) & "</TD>" Response.Write "<TD ALIGN=RIGHT>" & nCNT(i) & "</TD>" 'ALIGN=RIGHT追加 '%を計算して、表示する strMSG = FormatNumber((nCNT(i) / nSUM) * 100, 1) '計算と変換処理 Response.Write "<TD ALIGN=RIGHT>" & strMSG & "%</TD></TR>" Next Response.Write "</TABLE>" '忘れずにテーブルを終わりにする End Sub %>
↑を実行する→ http://www.ken3.org/cgi-bin/test/test016-1.asp
コードの三流解説は、
三流君ASP:入力、結果表示を1つに、Subで関数分割
↑を見て、笑ってやってください。