#!/usr/bin/perl use Getopt::Long; use DB_File; $dbmfile = 'riverweb.dbm'; tie %hash, DB_File, $dbmfile; # open database, to be accessed &PrintUsers; print "\n\nPlease type in a user name, or q to quit:\n"; while (){ chop; if (!($_ eq 'q')){ print "Responses for user \"$_\"\n\n"; } while (($key, $val) = each %hash){ if ($_ eq 'q'){ exit; } ($parsedinfo[0], $parsedinfo[1], $parsedinfo[2], $parsedinfo[3], $keywords, $parsedinfo[4]) = split(/\|/, $val); # print "$_ eq $parsedinfo[2]"; if ($_ eq $parsedinfo[2]){ $keywords =~ s/topstation=//g; $keywords =~ s/topindicator=//g; $keywords =~ s/bmptop=//g; $keywords =~ s/bottomstation=//g; $keywords =~ s/bottomindicator=//g; $keywords =~ s/bmpbottom=//g; $keywords =~ s/runoff/rn/g; $keywords =~ s/nitrogen/nt/g; $keywords =~ s/ph/ph/g; $keywords =~ s/bod/bo/g; $keywords =~ s/heavymetal/hm/g; $keywords =~ s/do/do/g; $keywords =~ s/precip/pc/g; $keywords =~ s/watertemp/wt/g; $keywords =~ s/saturateddo/sd/g; $keywords =~ s/phosphorus/ps/g; $keywords =~ s/sediments/sm/g; $keywords =~ s/toxins/tx/g; $keywords =~ s/temperature/tm/g; $keywords =~ s/totalflow/tf/g; $keywords =~ s/groundwater/gw/g; $keywords =~ s/:/-/g; $keywords .= $parsedinfo[0]; $location = $keywords; $datatype = $parsedinfo[1]; $response = $parsedinfo[4]; $id = $parsedinfo[3]; ($parsedinfo[0], $parsedinfo[1], $parsedinfo[2], $parsedinfo[3], $keywords, $parsedinfo[4]) = split(/\|/, $hash{$id}); if ($datatype eq '2'){ print "User Note: $location\n\n"; } elsif ($datatype eq '3'){ print "Question: $parsedinfo[4]\nLocation: $location\n\n"; } else{ print "Unknown Database Entry at $location\n\n"; } print "Response: $response\n\n\n"; } } foreach $user (@users){ print "\"$user\" "; } print "\n\n\a Please type in a user name, or q to quit:\n"; } untie %hash; sub PrintUsers{ print "Here'is a list of the users for the riverweb database\n"; while (($key, $val) = each %hash){ # pre process the entry for testing ($parsedinfo[0], $parsedinfo[1], $parsedinfo[2], $parsedinfo[3], $keywords, $parsedinfo[4]) = split(/\|/, $val); $found = 'no'; $i = 0; while ($i < $#users){ if ($parsedinfo[2] eq $users[$i]){ $found = 'yes'; } $i++; } if ($found eq 'no'){ print "\'$parsedinfo[2]\' "; push @users, $parsedinfo[2]; } #print "$parsedinfo[3]\n"; #print "$parsedinfo[4]\n"; #print "$keywords\n"; #print "$parsedinfo[0]\n"; #print "$parsedinfo[1]\n"; } }