sub ReadDatabase { # Open and read in Database of l/p/order strings open (DATA, "<$datafile"); while () { chop; ($login, $password, $order) = split("&",$_); push(@database, { Login => $login, Password => $password, Order => $order, }); } close (DATA); } sub IdentifyOrder { # search through array and find correct user while ($ee <= $#database){ if ($database[$ee]{'Login'} eq $user){ @order = split(//, $database[$ee]{'Order'}); $ee = $#database; } $ee++; } $ee = 0; } sub HasImprovementBeenMade { $ll = 0; &ReadDatabase; &IdentifyOrder; while ($ll <= $#order){ if ("$order[$ll]" eq "@_"){ $changed = 1; # print "Improvement has been made for station "; } $ll++; } # see if all the improvements have been made # only print 2 lines to station 7 when more than one # indicator has been improved if (@order){ $improved_7 = "print_two_lines";} else { $improved_7 = "print_one_line";} if ($#order == 5){ $done = "yes"; } else { $done = "no"; } } sub RemoveStationFromOrder { while ($jj <= $#order){ if ($order[$jj] != "@_"){ push @neworder, $order[$jj]; } $jj++; } @order = (); push (@order, @neworder); } sub AddStationToOrder { if ($user ne "tour2"){ push @order, @_[0]; } } sub ResetOrderInDatabase { # &ReadDatabase; # search through array and find correct user while ($ee <= $#database){ if ($database[$ee]{'Login'} eq $user){ $database[$ee]{'Order'} = (); $ee = $#database; } $ee++; } $ee = 0; } sub UpdateOrderInDatabase { while ($aa <= $#order){ $ordre = ("$ordre" . "$order[$aa]"); $aa++; } # search through array and find correct user while ($ee <= $#database){ if ($database[$ee]{'Login'} eq $user){ $database[$ee]{'Order'} = $ordre; $ee = $#database; } $ee++; } $ee = 0; } sub PrintArrayToDatabase { open (DATA, ">$datafile") || die "could not open $datafile in PrintArrayToDatabase: $! \n"; while ($r <= $#database){ if ($database[$r]{Login}){ print DATA "$database[$r]{Login}&$database[$r]{Password}&$database[$r]{Order}\n"; } $r++; } close DATA; } sub ApendDatabase { # Checks entries for duplicate user ids, and if they pass, # Apends password datafile with name&password&defaultorder while ($x <= $#admin){ if ($admin[$x]{'Login'}){ if ($form{login} =~ /$admin[$x]{'Login'}/i){ $error = "User ID already in use. Please use another name"; &PrintError; } } $x++; } if ($error){ exit; } else { open (FILE, ">>$datafile") || die "could not open file $datafile : $!\n"; print FILE "$form{login}&$form{password}&\n"; } } 1;