oblate kramrdc has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use warnings; my $SOURCEFILE; my $TARGETFILE; my $REPORTFILE; my $converted; my $discarded; my $holder; my $titleid; print "Enter filename to convert: "; chomp($SOURCEFILE = <STDIN>); print "Save to:"; chomp($TARGETFILE =<STDIN>); print "Save Conversion Report to:"; chomp($REPORTFILE =<STDIN>); open SOURCEFILE, '<', $SOURCEFILE or die "Can't open $SOURCEFILE: $!"; open TARGETFILE, '>', $TARGETFILE or die "Can't open $TARGETFILE: $!"; open REPORTFILE, '>', $REPORTFILE or die "Can't open $REPORTFILE: $!"; $converted=0; $discarded=0; sub reporting { print TARGETFILE $holder; print REPORTFILE " -> "; print REPORTFILE $holder; $converted++; } #Evaluate per line foreach my $line (<SOURCEFILE>) { if ($line =~ /<NAME>(\w+)/) { print REPORTFILE $line; #saves original value to repor +tfile $line =~ s/<NAME>/|/; $line =~ s/\n//g; $holder = $line; reporting; } elsif ($line =~ /<AGE>(\w+)/) { print REPORTFILE $line; $line =~ s/<AGE>/|/; $line =~ s/\n//g; $holder = $line; reporting; } elsif ($line =~ /<ADDRESS>(\w+)/) { print REPORTFILE $line; $line =~ s/<ADDRESS>/|/; $line =~ s/\n//g; $holder = $line; reporting; } elsif ($line =~ /<PHONE>(\w+)/) { $discarded++; print REPORTFILE "<xx> "; print REPORTFILE $line; } } print TARGETFILE "^\n"; # eof line marker print REPORTFILE "No. of fields Converted: "; print REPORTFILE $converted, "\n"; print REPORTFILE "No. of fields Discarded: "; print REPORTFILE $discarded, "\n"; close SOURCEFILE or die "Can't close: $!"; close TARGETFILE or die "Can't close: $!"; close REPORTFILE or die "Can't close: $!";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: convert directory content to dbf
by liverpole (Monsignor) on Feb 08, 2007 at 15:15 UTC | |
|
Re: convert directory content to dbf
by Moron (Curate) on Feb 08, 2007 at 15:27 UTC | |
by johngg (Canon) on Feb 08, 2007 at 19:05 UTC | |
by oblate kramrdc (Acolyte) on Feb 08, 2007 at 16:56 UTC | |
by johngg (Canon) on Feb 08, 2007 at 18:56 UTC |