#!/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"; }