From f294d4e084fa70f1d7c996d7f679490419249ddd Mon Sep 17 00:00:00 2001 From: Ben Ostrowsky Date: Tue, 6 Apr 2010 14:50:54 +0000 Subject: [PATCH] Renamed utility, added --help and perldoc documentation --- dbf-to-tsv.pl | 44 --------------------------- dbf2tsv | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 44 deletions(-) delete mode 100755 dbf-to-tsv.pl create mode 100755 dbf2tsv diff --git a/dbf-to-tsv.pl b/dbf-to-tsv.pl deleted file mode 100755 index 3455d4c..0000000 --- a/dbf-to-tsv.pl +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -use XBase; # or could use DBI and DBD::XBase; -use Data::Dumper; -use Getopt::Long; -use Encode; - -my $in = ''; -my $out = ''; -GetOptions('in=s' => \$in, 'out=s' => \$out); - -open OUT, ">$out" or die $!; - -my $table = new XBase $in or die XBase->errstr; - -# get list of field names -my @names = $table->field_names; - -# dump PATRONID, SURNAME, FIRSTNAME -print OUT join ("\t", @names) . "\n"; - -sub clean { - if ( $_ ) { - s/\\/\\\\/g; - s/\n/\\n/g; - s/\r/\\r/g; - s/\t/\\t/g; - Encode::encode("utf8", $_) - } else { ''; } # to avoid 'Use of uninitialized value in join' -} - -my $i = 0; -for (0 .. $table->last_record) { - $i++; - my ($deleted, @row) = $table->get_record($_); - @row = map (&clean, @row); - print OUT join("\t", @row) . "\n" unless $deleted; - -} - -print STDERR "$i records exported to $out.\n"; diff --git a/dbf2tsv b/dbf2tsv new file mode 100755 index 0000000..b6974c6 --- /dev/null +++ b/dbf2tsv @@ -0,0 +1,91 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use XBase; # or could use DBI and DBD::XBase; +use Data::Dumper; +use Getopt::Long; +use Encode; + +my $in = ''; +my $out = ''; +my $help = 0; +GetOptions('in=s' => \$in, 'out=s' => \$out, 'help' => \$help); + +if ($help) { &show_help; } + +my @errors; +if ($in eq '') { push @errors, 'Input file must be specified ( --in inputfile.dbf )' }; +if ($out eq '') { push @errors, 'Output file must be specified ( --out outputfile.tsv )' }; +if (@errors > 0) { &show_help (@errors); } + +open OUT, ">$out" or die $!; + +my $table = new XBase $in or die XBase->errstr; + +# get list of field names +my @names = $table->field_names; + +# dump PATRONID, SURNAME, FIRSTNAME +print OUT join ("\t", @names) . "\n"; + +sub clean { + if ( $_ ) { + s/\\/\\\\/g; + s/\n/\\n/g; + s/\r/\\r/g; + s/\t/\\t/g; + Encode::encode("utf8", $_) + } else { ''; } # to avoid 'Use of uninitialized value in join' +} + +my $i = 0; +for (0 .. $table->last_record) { + $i++; + my ($deleted, @row) = $table->get_record($_); + @row = map (&clean, @row); + print OUT join("\t", @row) . "\n" unless $deleted; + +} + +print STDERR "$i records exported to $out.\n"; + + +sub show_help { + my ($msg) = @_; + print "\nERROR - $msg\n" if $msg; + print <