#!/usr/bin/perl
print "Content-type: text/html\n\n";
$resultfile00 = "../cntrl/cg_60fz00rslt.html";
require '../../basiccgi/cgi-bin/jcode.pl';
require '../../basiccgi/cgi-bin/cg_00io10.pl';
require '../../basiccgi/cgi-bin/cg_00fx10.pl';
require '../../basiccgi/cgi-bin/cg_00st10.pl';
&date_form;
require 'cg_6010.pl';
# ======== end =========================================
$prg_no = "cg_6010inp";
#****** データ受信 と デコード ******
$multi_item = 1;
$multi_max = 50;
@multi_nmbr = (0,0,0);
@multi_name = ("answer1","","");
&de_code;
$prjcode = $cgi{'prjcode'};
$task = $cgi{'task'};
$code1 = $cgi{'code1'};
$name1 = $cgi{'name1'};
$dept1 = $cgi{'dept1'};
$timespent = $cgi{'time1'};
$comment = $cgi{'comment'};
@answer = @multi_table;
$prjdata = $prjcode;
$prjdata =~ s/_/\-/;
$datafile = "../".$prjcode."data/".$prjdata.$code1."data.txt";
$lock_file = "../cntrl/cg_60lock.txt";
$htmlcomment = $comment;
$htmlcomment =~ s/\012/
/g;
#print "DEBUG 02
\n";
# ******** プログラム本体 ********
if($dept1 lt "A" || $name1 lt "A"){
$err_msg = "氏名ご記入の上再送信ください。
\n";
&err_exit($err_msg);
}
&list1;
#print "DEBUG 04 - $ansnmbr1 - @answer
\n";
&lock_up($lock_file,"err");
&data;
$key1 = $f1_data[0];
#print "DEBUG 05 $datafile - $lock_file
\n";
&list2;
&un_lock($lock_file,"");
#print "DEBUG 06 $display
\n";
if($display eq "yes"){
$ninzuu = $fld3[1];
$goukei = $fld3[2];
$jijou = $fld3[3];
#print "DEBUG 07 $ninzuu - $point - $goukei - $jijou
\n";
&hyoujun;
&hensachi;
#print "DEBUG 08 $hensachi\n";
&result;
&end_exit("");
}
else{
$dsp_msg="受験データ受信いたしました。
ありがとうございました。";
&end_exit($dsp_msg);
}
exit;
# ******** Sub Routines ********
# -------- 問題データファイル更新 --------
sub list1{
&basicdata;
$point=0;
for($i=0;$i<$ansnmbr1;$i++){
if($task eq "eg"){
$answer[$i] =~ tr/A-Z/a-z/;
$correct[$i] =~ tr/A-Z/a-z/;
}
if($answer[$i] eq $correct[$i]){
$point = $point + $fld3[6+$i];
}
#print "DEBUG sub list1 - $i - $answer[$i] - $correct[$i] - $fld3[6+$i]
\n";
}
}
sub data{
$f1_file = $datafile;
$f1_key = " _ ";
$len = length($dept1);
if($len > 12){$len = 12;}
substr($f1_key,0,$len) = $dept1;
$len = length($name1);
if($len > 12){$len = 12;}
substr($f1_key,13,$len) = $name1;
$f1_data[0] = $f1_key;
$f1_data[1] = $date_day;
$f1_data[2] = $point;
$f1_data[3] = $timespent;
$f1_data[4] = $htmlcomment;
$f1_data[5] = "解答";
for($i=0;$i<$ansnmbr1;$i++){
$f1_data[6+$i] = $answer[$i];
}
#print "
DEBUG 33 - $ansnmbr1 - $f1_key
@f1_data
\n";
&rcrd_insert($datafile,"");
#print "DEBUG 34 - $ansnmbr1 - $f1_keylen
@f1_data
\n";
if($err_msg ne "0"){
#print "DEBUG 35 - $err_msg
\n";
$str = "同じキーのデータが既に存在";
$err_msg1 = $err_msg;
&jcode'convert(*err_msg1, 'euc');
&jcode'convert(*str, 'euc');
if($err_msg1 =~ m/$str/){
#print "DEBUG 36 - $err_msg
\n";
$f1_keynmbr = 1;
$f1_keylist[0] = $f1_key;
&rcrd_search($datafile,"err");
@fld = split("",$f2_rcrdlist[0]);
$err_msg = "
重複受験です。
氏名:".$name1."、所属:".$dept1."、前回受験日:".$fld[1]."
\n";
}
&err_exit($err_msg);
}
}
sub list2{
$fld3[1] = $fld3[1] + 1;
$fld3[2] = $fld3[2] + $point;
$fld3[3] = $fld3[3] + ($point * $point);
$nmbr = @fld3;
for($i=1;$i<$nmbr;$i++){
$f1_data[$i]=$fld3[$i];
}
$f1_data[0] = "000000000000_------//////";
#print "
DEBUG sublist2 10 - $nmbr - $fld3[0]
@f1_data
\n";
&rcrd_rewrite($datafile,"err");
#print "$err_msg
\n";
}