<外見の調整とArray関数を使用して配列作成> こんにちは、Ken3です。 前回は、 配列変数を使って、プログラムの中身をスッキリさせました。 でも、 世の中、中身も大切ですが、外見も重要みたいです。 男性も化粧する、そんな時代なので(オイオイ、ホントか?) 今回は、アンケート結果の出力に少し化粧してみます。(見やすく) えっ、元が悪いと化粧もイミナイって?そんなぁ〜 あまり期待しないでね。 /* * 1.素顔で勝負(笑)、データを素で表示 */ テキストファイルの処理もマンネリ化した今日この頃、 そろそろDBでもやるか? じゃなくって、 アンケートの集計結果、そのまま下記のようにデータ件数を表示してます。 集計結果: http://www.ken3.org/cgi-bin/test/test013-3.asp より ---- 6、大変満足は、1人 5、満足は、2人 4、まぁまぁは、1人 3、どちらとも言えないは、4人 2、少し不満は、2人 1、不満は、2人 0、かなり不満は、2人 ---- 見易いとは、お世辞でも言えないよね。 Ken3をヨイショする理由も無いし(笑) 家の中(社内システムなど身内しか見ない)や自分の部屋(マイマシーン) ではいいかもしれないけど 外出る時は(インターネットで公開)、 少しぐらい化粧したら? 私は、素顔で勝負の女(男)だからね、いいよまわりは気にしないし。 それだと話が終わってしまうので、 そろそろ、マジメに見た目にこだわってみます。 /* * 2.<TABLE>タグでデータを整える(表にする) */ まずは、バラバラな出力を整えます。 6、大変満足は、1人 5、満足は、2人 4、まぁまぁは、1人 3、どちらとも言えないは、4人 を 評価 人数 6 大変満足は、 1人 5 満足は、 2人 4 まぁまぁは、 1人 3 どちらとも言えないは、 4人 項目名を付けて、表にするか。 -- http://www.ken3.org/cgi-bin/test/test014-1.asp <%@LANGUAGE=VBScript%> <html> <head> <title><TABLE>タグを使用してみた</title> </head> <body> <h2><TABLE>タグを使用してみた</h2> test014-1.asp<br> <hr> <% dim strRECORD 'レコード内容を一時保存 dim nCNT(10) 'カウンター 変数 10個もいらないけど 'カウンター変数をループで初期化しておく For i = 0 to 10 nCNT(i) = 0 Next 'FileSystemObjectを生成します、、って英文、そのままジャン。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") 'test013.txt 結果ファイルを読取専用モードで開く Set ts = objFS.OpenTextFile(Server.MapPath("test013.txt"), 1, True) Do While ts.AtEndOfStream = False 'ファイルの終端になってない間ループする strRECORD = ts.ReadLine 'ファイルからデータを一行を読む '*3 Left関数を使って左から1文字目をCintで数値変換 i = Cint(Left(strRECORD, 1)) '読みこんだレコードの1文字目を数値変換 '*4 nCNT(i番目)をカウントアップ nCNT(i) = nCNT(i) + 1 Loop ts.close '使ったファイルは閉じようよ '*1結果の表示を<TABLE>タグを使用して表示 Response.Write "<TABLE>" Response.Write "<TR><TD>評価</TD><TD>コメント</TD><TD>人数</TD></TR>" Response.Write "<TR><TD>6</TD><TD>大変満足</TD><TD>" & nCNT(6) & "</TD></TR>" Response.Write "<TR><TD>5</TD><TD>満足</TD><TD>" & nCNT(5) & "</TD></TR>" Response.Write "<TR><TD>4</TD><TD>まぁまぁ</TD><TD>" & nCNT(4) & "</TD></TR>" Response.Write "<TR><TD>3</TD><TD>どちらとも言えない</TD><TD>" & nCNT(3) & "</TD></TR>" Response.Write "<TR><TD>2</TD><TD>少し不満</TD><TD>" & nCNT(2) & "</TD></TR>" Response.Write "<TR><TD>1</TD><TD>不満</TD><TD>" & nCNT(1) & "</TD></TR>" Response.Write "<TR><TD>0</TD><TD>かなり不満</TD><TD>" & nCNT(0) & "</TD></TR>" Response.Write "</TABLE>" %> <hr> アンケート結果はこんな感じです。<br> <A HREF="test013.txt" target="_new">元データtest013.txtを見る</A><br> <br> </body> </html> -- 実行すると、結果の表示は、こんな感じでした。 評価 コメント 人数 6 大変満足 1 5 満足 2 4 まぁまぁ 1 3 どちらとも言えない 2 2 少し不満 2 1 不満 1 0 かなり不満 1 '*1結果の表示を<TABLE>タグを使用して表示 Response.Write "<TABLE>" Response.Write "<TR><TD>評価</TD><TD>コメント</TD><TD>人数</TD></TR>" Response.Write "<TR><TD>6</TD><TD>大変満足</TD><TD>" & nCNT(6) & "</TD></TR>" Response.Write "<TR><TD>5</TD><TD>満足</TD><TD>" & nCNT(5) & "</TD></TR>" Response.Write "<TR><TD>4</TD><TD>まぁまぁ</TD><TD>" & nCNT(4) & "</TD></TR>" Response.Write "<TR><TD>3</TD><TD>どちらとも言えない</TD><TD>" & nCNT(3) & "</TD></TR>" Response.Write "<TR><TD>2</TD><TD>少し不満</TD><TD>" & nCNT(2) & "</TD></TR>" Response.Write "<TR><TD>1</TD><TD>不満</TD><TD>" & nCNT(1) & "</TD></TR>" Response.Write "<TR><TD>0</TD><TD>かなり不満</TD><TD>" & nCNT(0) & "</TD></TR>" Response.Write "</TABLE>" が 修正したプログラム場所です。 化粧と言うか、ぷっ(笑)、厚化粧だよね。 ほんと、ほんと、自分でも笑っちゃうよね書いてて。 /* * 3.Arrayを使って配列を初期化 */ さて、中途半端に厚化粧したけど、本人も納得してないので、 気分を変えて、中身の処理も少し変えてみます。 配列の初期化で、Array関数を使った方法があります。 strBOX = Array("満足","普通","不満") とやると、 strBOX(0)に満足、(1)に普通...と配列の0番目からデータを作成してくれます。 こいつを使用して、下記のように書いてみました。 -- http://www.ken3.org/cgi-bin/test/test014-2.asp <%@LANGUAGE=VBScript%> <html> <head> <title>Array関数を使用して配列の初期化</title> </head> <body> <h2>Array関数を使用して配列の初期化</h2> test014-2.asp<br> <hr> <% dim strRECORD 'レコード内容を一時保存 dim nCNT(10) 'カウンター 変数 10個もいらないけど 'カウンター変数をループで初期化しておく For i = 0 to 10 nCNT(i) = 0 Next 'FileSystemObjectを生成します、、って英文、そのままジャン。 Set objFS = Server.CreateObject("Scripting.FileSystemObject") 'test013.txt 結果ファイルを読取専用モードで開く Set ts = objFS.OpenTextFile(Server.MapPath("test013.txt"), 1, True) Do While ts.AtEndOfStream = False 'ファイルの終端になってない間ループする strRECORD = ts.ReadLine 'ファイルからデータを一行を読む '*3 Left関数を使って左から1文字目をCintで数値変換 i = Cint(Left(strRECORD, 1)) '読みこんだレコードの1文字目を数値変換 '*4 nCNT(i番目)をカウントアップ nCNT(i) = nCNT(i) + 1 Loop ts.close '使ったファイルは閉じようよ '*2Array関数を使用して、評価コメントを初期化 strBOX = Array("かなり不満", "不満", "少し不満", "どちらとも言えない", _ "まぁまぁ", "満足", "大変満足") '*1結果の表示を<TABLE>タグを使用して表示 Response.Write "<TABLE border=1>" 'border=1で境界線(ワクを表示) Response.Write "<TR><TD>評価</TD><TD>コメント</TD><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>" & nCNT(i) & "</TD></TR>" Next Response.Write "</TABLE>" '忘れずにテーブルを終わりにする %> <hr> アンケート結果はこんな感じです。<br> <A HREF="test013.txt" target="_new">元データtest013.txtを見る</A><br> <br> </body> </html> --- 修正したポイントを書くと、 まず、使用する評価コメントを配列に代入しました。 '*2Array関数を使用して、評価コメントを初期化 strBOX = Array("かなり不満", "不満", "少し不満", "どちらとも言えない", _ "まぁまぁ", "満足", "大変満足") と、Array関数を使ってます。 隠された?ポイントとして、 "どちらとも言えない", _ ←ここのアンダーバー気になりました? 一行に命令やパラメータを書けない時や、 書けてもダラダラと続けるのがイヤな時、 _ を行末に付けて、記述することができます。 次に表示で、ループ処理を使って、各配列を6〜0まで表示してます。 '*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>" & nCNT(i) & "</TD></TR>" Next ポイントは、 For i = 6 To 0 Step -1 で、通常はカウンターは+1していくのを、 Step −1 で、6から−1してます。 表示が同じだと、芸が無いので、 Response.Write "<TABLE border=1>" 'border=1で境界線(ワクを表示) とTABLEタグのパラメータ、境界線border=1として、ワクを書いて見ました。 /* * 4.プログラムも大事、見せ方も大事 */ まぁ、言いたかったのは、 前回は、同じ処理をするんだけど、 今後の修正・保守性を考えたプログラムを書きましょう。 今回は、同じ内容のデータを出力するんだけど、 見えない中身よりも、目に見える外見も重要ですよ。 集計結果表示: http://www.ken3.org/cgi-bin/test/test013-3.asp ←そのまま人数を表示 http://www.ken3.org/cgi-bin/test/test014-1.asp ←表(TABLE)にした http://www.ken3.org/cgi-bin/test/test014-2.asp ←表にワクをつけた でした。 まぁ、中身も外見もバランス良くですが。 (さらに進むと、厚化粧で時間をかけるよりは、そのままでもって意見もあるよ) /* * 5.終わりの挨拶 */ 今回は、 ・TABLEタグを使ってデータの見せ方を変えてみた ・Arrayを使って配列を初期化 ・中身と外見のお話 でした。 結果の見せ方も、いろいろな書き方あるので、 人を振り向かせる、夢中にさせるページをみなさんは書いてくださいね。 姿だけ美人やイケメン君でも中身が無いと、すぐにフラレでしまうけどね。 えっ、中身はそんなに変わらないんだから、美人・イケメンのほうがいいって? う〜ん、、、まぁ、バランスだと思うけど(笑) 最強ページへの道のりは遠いなぁ〜。 またね(笑) 何か質問・感想があったら、気軽に、 メール、掲示板に書き込んでくださいね。 三流プログラマーの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記事 バックナンバー目次]