Skip to content

Instantly share code, notes, and snippets.

@tallakt
Created October 16, 2012 13:29
Show Gist options
  • Save tallakt/3899286 to your computer and use it in GitHub Desktop.
Save tallakt/3899286 to your computer and use it in GitHub Desktop.
Step 7 unprotect blocks
#!/usr/bin/env perl -w
# To run on linux, install the following packages:
# sudo apt-get install libdbd-xbase-perl
# sudo apt-get install libdbi-perl
#
# To run without downloading and creating the perl file, type:
# cd /path/to/step7/project
# curl -s -L https://raw.github.com/gist/3899286/s7unprotect.pl | perl
#
# Make sure to backup your project in advance
use DBI;
use File::Find;
use Cwd();
find(\&unprotect, Cwd::cwd());
sub unprotect
{
if($_ =~ /SUBBLK.DBF/) {
print "Unprotecting file: " . $File::Find::name . "\n";
my $dbh = DBI->connect("DBI:XBase:" . $File::Find::dir) or die $DBI::errstr;
$dbh->do('update SUBBLK set PASSWORD = ?', {}, '0');
}
}
# Copyright (C) 2012 Tallak Tveide
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
# following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment