Solved

User Prompt in Perl

Posted on 2006-11-14
1
381 Views
Last Modified: 2010-03-05
Hello everyone,

The code below does the funtion of trasnfer data from excel to MySQL server. the only issue is that whenever u this perl script it throws the dat onto the server. I would like to have a prompt appear on the screen asking user weather they like to send the data or not. If they say yes then it should proceed otherwise halt.

Thanks


use lib qw(../);
use Spreadsheet::ParseExcel;
my $oExcel = new Spreadsheet::ParseExcel;
sub PrnBook($);

#------------------
  use Mysql;
  use Data::Table;
  use DBI;

#------------------

#1.1 Normal Excel97




    # ---------------------------------
    # --------------------------------- ENTER FILENAME BELOW -------------------------------------------------
    # ---------------------------------
   
            my $oBook = $oExcel->Parse('uu.xls');
            
      # ---------------------------------
      # ---------------------------------
      # ---------------------------------      
            
            
            
            
PrnBook($oBook);


sub PrnBook($)
{

   
          $dbh = Mysql->connect("svv-db", "rap", "aahooja", "password");
          


    my($oBook) = @_;
    my($iR, $iC, $oWkS, $oWkC);
    my %LongerNames; #Create variable
    $LongerNames{'lai'}=2; #Use 2 letters from first name if last name is Lai
    $LongerNames{'wang'}=3; #Use 3 letters from first name if last name is wang      
    $LongerNames{'jiang'}=2; #Use 2 letters from first name if last name is jiang    


    print "=========================================\n";
    print "FILE  :", $oBook->{File} , "\n";
    print "COUNT :", $oBook->{SheetCount} , "\n";
    print "AUTHOR:", $oBook->{Author} , "\n";





    # ---------------------------------
    # --------------------------------- ENTER SHEET NUMBER BELOW (starting from 0) -------------------------------------------------
    # ---------------------------------

        $oWkS = $oBook->{Worksheet}[0];
       
         # ---------------------------------
      # ---------------------------------
      # ---------------------------------    
       
       
       
       
       
        print "--------- SHEET:", $oWkS->{Name}, "\n";
        for(my $iR = $oWkS->{MinRow} ;
                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
                  
                  
           
            if ($oWkS-> {Cells}[$iR][0])
            {  
             
              if ($oWkS-> {Cells}[$iR][0]->Value)
              {    
                    #$oWkC = $oWkS->{Cells}[$iR][$i];
                #print $oWkC."\n";
                  

                  $q = "INSERT INTO `rap`.`raptable`(Day, Week, TaskID, Tab, Network, Activity, Task, Subtask, EtimeCode, ActualCategory, Work, Person, HoursWorked, Notes, Year, Month, DateModified) VALUES (";
                  for ($i = 0; $i<17; $i++)
                  {
                     if (!$oWkS->{Cells}[$iR][$i])
                     {      $q = $q."''";      }


                     elsif ($i==11)
                     {
                        $name = lc($oWkS->{Cells}[$iR][$i]->Value);
                        $ind = rindex ($name," ");
                        $last = substr($name,$ind+1);
                        $len =($LongerNames{$last} or 1); #use defined length, or 1 if not defined
                        $first = substr($name,0,$len);
                        print $first.$last."\n";
                        $q = $q."'".$first.$last."'";
                     }



                      elsif ($i==13)
                     {
                                    $notes = $oWkS->{Cells}[$iR][$i]->Value;
                                    $notes =~ s/'/\\'/g;
                                    $q = $q."'".$notes."'"
                     }
                                 
                    
                     else
                     {       $q = $q."'".$oWkS->{Cells}[$iR][$i]->Value."'";                  }
                     if ($i!=16)
                     {      $q = $q.", ";      }
                     else
                     {      $q = $q.")";      }

                  }


                  print $q."\n";
                  
          
               
               
               
                $dbh->query($q);





              }
            }

           
        }
 
}
0
Comment
Question by:Musaab1
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 48

Accepted Solution

by:
Tintin earned 500 total points
ID: 17941715
print "Would you like to transfer the data (Y/N)? ";
chomp(my $ans = <STDIN>);
die "Transfer aborted\n" unless (lc($ans) eq 'y');
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many time we need to work with multiple files all together. If its windows system then we can use some GUI based editor to accomplish our task. But what if you are on putty or have only CLI(Command Line Interface) as an option to  edit your files. I…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question