|
■ CSVデータを加工して表示する
#!/usr/local/bin/perl
#------------------------------------------------------------------------------
$title = "テスト結果";
#------------------------------------------------------------------------------
print "Content-type: text/html\n\n";
print <<"EOM";
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
<title>$title</title>
<META http-equiv="Content-Style-Type" content="text/css">
</HEAD>
<BODY>
<table border=1 width="80%" align="center" CELLSPACING="0" CELLPADDING="2">
<tr>
<td width="10%">氏名</td>
<td width="15%" align=\"right\">国語</td>
<td width="15%" align=\"right\">数学</td>
<td width="15%" align=\"right\">社会</td>
<td width="15%" align=\"right\">理科</td>
<td width="15%" align=\"right\">英語</td>
<td width="15%" align=\"right\">合計</td>
</tr>\n
EOM
&Disp;
print <<"EOM";
</table>
</BODY>
</HTML>
EOM
exit;
#
# CSVファイルからデータを読み込み表示する
#
sub Disp {
if( !open(IN, "mm.txt") ) {
print "データファイルがオープンできません<BR>\n";
}
else {
$i = 0;
while ($line = <IN>) {
# 読み込んだデータを分離する
my ($name, $kokugo, $sansuu, $shakai, $rika, $eigo) = split(/,/,$line);
# 合計を計算する
my $goukei = $kokugo + $sansuu + $shakai + $rika + $eigo;
print <<"EOM"
<tr>
<td width="10%">$name</td>
<td width="15%" align=\"right\">$kokugo</td>
<td width="15%" align=\"right\">$sansuu</td>
<td width="15%" align=\"right\">$shakai</td>
<td width="15%" align=\"right\">$rika</td>
<td width="15%" align=\"right\">$eigo</td>
<td width="15%" align=\"right\">$goukei</td>
</tr>\n
EOM
}
close(IN);
}
}
表示するCSVファイル
飯田,73,69,75,86,89
安倍,79,69,42,74,71
保田,76,77,87,71,93
矢口,75,77,70,87,53
石川,70,62,64,69,73
吉澤,65,53,39,61,52
辻,45,78,51,51,24
加護,42,51,48,50,60
高橋,66,72,55,79,74
紺野,87,89,96,93,48
小川,77,85,64,71,58
新垣,57,38,49,48,66
実行結果
テスト結果
| 氏名 |
国語 |
数学 |
社会 |
理科 |
英語 |
合計 |
| 飯田 |
73 |
69 |
75 |
86 |
89
|
392 |
| 安倍 |
79 |
69 |
42 |
74 |
71
|
335 |
| 保田 |
76 |
77 |
87 |
71 |
93
|
404 |
| 矢口 |
75 |
77 |
70 |
87 |
53
|
362 |
| 石川 |
70 |
62 |
64 |
69 |
73
|
338 |
| 吉澤 |
65 |
53 |
39 |
61 |
52
|
270 |
| 辻 |
45 |
78 |
51 |
51 |
24
|
249 |
| 加護 |
42 |
51 |
48 |
50 |
60
|
251 |
| 高橋 |
66 |
72 |
55 |
79 |
74
|
346 |
| 紺野 |
87 |
89 |
96 |
93 |
48
|
413 |
| 小川 |
77 |
85 |
64 |
71 |
58
|
355 |
| 新垣 |
57 |
38 |
49 |
48 |
66
|
258 |
一つ前のスクリプトを機能アップして、合計を表示するようにしてみました。このスクリプトでは合計だけですが、偏差値を計算して表示するなど、スクリプトを修正して機能アップすることが可能ですね。
|