Dennis W. Ruffner, Programmer, PHP, MySQL, ODBC, perl, VB for Access

   September 05, 2010
12:52 a.m.
  
aasys.pl - steps through directories Word docs & calls aaconvert.pl
#!/usr/bin/perl -w
#
#///////////////////////////////////////////////////
#//   Dennis W. Ruffner
#//     December 2004
#//   aasys.pl: steps through directories opening all of the Word in turn then does a 
#//         system call to aaconvert.pl -- copies MS Word document to text file
#//     888 Web Gurus
#///////////////////////////////////////////////////
#//  Walks the directory ($dir) opens subdirectories and Word documents in turn.
#//  Converts Word documents to text files
#//
#//  paramaters:
#//   $dir - directory one level above where your Word Documents reside
#//   $dir_out - directory one level above where your Text Documents will reside
#//
#//   Out0File.txt -- report created in $dir
#//
#//   Input: Clear input directories of all non word documents
#//   Output: Creates directories in directory $dir_out and a text file for each Word document in $dir

$dir = "c:/aad/Disks/";
$dir_out = "c:/aad/Dsktxt/";
$path_in = "";
$path_out = "";
$dir_mk = "";

print "aasys.pl\n";
print " directory $dir\n";
print " directory out $dir_out\n";

$dir_cnt = 0;
$file_cnt = 0;

&open_out0_file;
print OUT0 ("##################### ");
print OUT0 ("Program: aasys.pl");
print OUT0 (" ################## \n");

&date_time;

   opendir DIR, "$dir";
   @files = readdir DIR;
   close DIR;

   foreach $file (@files) {
     $path = $dir . "/" . $file;
     $path =~ s/\/\//\//;
     if ($file eq "\.") { next; }
     if ($file eq "\.\.") { next; }
     $dir_cnt++;
     $dir_mk = $dir_out . $file;
     print $path . "\n";
     print OUT0 ("\n" . $path . "\n");
     print OUT0 ("dir_mk: $dir_mk \n");
     mkdir ($dir_mk);

     opendir DIR, "$path";
     @files2 = readdir DIR;
     close DIR;

     foreach $file2 (@files2) {
          $path2 = $dir . "/" . $file2;
          $path2 =~ s/\/\//\//;
          if ($file2 eq "\.") { next; }
          if ($file2 eq "\.\.") { next; }

            $file_cnt++;
            $path_in = $dir . $file . "/" . $file2;
            $file2 =~ s/\.//;
            $path_out = $dir_out . $file . "/" . $file2 . ".txt";
            &ConvToTxt($path_in, $path_out);
          } # end second foreach

     } # end first foreach

     print "\ndirectories opened: " . $dir_cnt . "\n";
     print "\nfiles opened: " . $file_cnt . "\n";

     print OUT0 ("directories opened: " . $dir_cnt . "\n");
     print OUT0 ("files opened: " . $file_cnt . "\n");

     close(OUT0);

     exit(0);

###################### call to 'aaconvert.pl' #####################################
sub ConvToTxt (&$) {
my ($in, $out) = @_;
# print "ConvToTxt\n";

  print OUT0 ("\n in: $in\n out: $out\n");

   system("aaconvert.pl $in $out");

} # end ConvToTxt

#####################################################################################
sub date_time {

($sec, $min, $hour, $mday, $mon, $year, $wday) =
     localtime(time);

#$hour:$min:$sec
$year += 1900;

$thisday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$wday];

$thismonth = (Jan,Feb,Mar,Arp,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)[$mon];

$thisdate = $thisday . ", " . " " .$mday . " " . $thismonth . " " . $year . " " . $hour
     . ":" . $min . ":" . $sec;
print ("\nToday is: $thisdate\n");

} # end date-time

#####################################################################################
sub open_out0_file {
print (" open_out0_file\n");

   $out0file = $dir . "Out0File.txt";
   open(OUT0, ">$out0file") || "Open Out0 failed";

} # end open_out1_file;

This page has been visited 1200 times.