rendered paste body#!/usr/bin/perl
use warnings;
print "-"x80,"\n";
if (! defined($ARGV[1]) ) {
print "Start het programma als volgt: \n"
."./fetchtable -db db.sql\n";
exit;
}
my $sqldump = $ARGV[1];
my $begin_of_db = 0;
my $end_of_db = 0;
my $begin_of_table = 0;
my $end_of_table = 0;
my $linenumber = 0;
my $name_of_table;
my $name_of_db;
my $fh;
print "Geef de databasenaam:\n";
chomp($name_of_db = <STDIN>);
print "Geef de tabelnaam waarvan structuur en data uit de dump moet worden"
."gehaald\n";
chomp($name_of_table = <STDIN>);
print "-"x80,"\n";
open($fh, "<$sqldump")
or die "Kan $sqldump niet openen!\n";
my $db_cmp_data = "-- Current Database: `$name_of_db`";
my $table_struct_cmp_data = "-- Table structure for table `$name_of_table`";
my $check = 0;
while(<$fh>) {
chomp;
$linenumber++;
if ( $_ eq $db_cmp_data ) {
$begin_of_db = $linenumber;
$check = 1;
next;
}
if ( /.*Current Database.*/ && $check == 1) {
$end_of_db = $linenumber;
last;
}
}
seek $fh,0,0;
$check = 0;
$linenumber = 0;
while(<$fh>) {
chomp;
$linenumber++;
if ( $linenumber == $begin_of_db ) {
while(<$fh>) {
chomp;
$linenumber++;
if ( $_ eq $table_struct_cmp_data ) {
$begin_of_table = $linenumber;
$check = 1;
next;
}
if ( /.*Table structure.*/ && $check == 1) {
$end_of_table = $linenumber;
last;
}
}
}
}
my $restore_file = "$name_of_table".".sql";
my $restore_fh;
open($restore_fh, ">>$ENV{'HOME'}/$restore_file")
or die "Kan $restore_file niet openen!\n";
seek $fh,0,0;
$check = 0;
$linenumber = 0;
while(<$fh>) {
$linenumber++;
if ( $linenumber == $begin_of_table ) {
while(<$fh>) {
chomp;
$linenumber++;
last if $linenumber == $end_of_table;
print $restore_fh "$_\n";
}
}
}
close $fh;
close $restore_fh;