convert_w3.pl
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #!/usr/bin/perl
  2. if (scalar(@ARGV) != 2) {
  3.     &usage;
  4.     exit;
  5. }
  6. &header;
  7. # remove a trailing /
  8. $dirpath = $ARGV[0];
  9. $dirpath =~ s!(.*)/$!$1!;
  10. $dirpath2 = $ARGV[1];
  11. $dirpath2 =~ s!(.*)/$!$1!;
  12. $max_uid = -1;
  13. opendir FILEDIR, $dirpath or die "Error opening filedir!n";
  14. while ($filename = readdir FILEDIR) {
  15.     if ($filename =~ m/^./) { next; } #ignore . and ..
  16.     if ( ! (($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
  17.     $atime,$mtime,$ctime,$blksize,$blocks) = stat $dirpath ."/". $filename )) {
  18.         print "Error stat-ing the file $pathdir/$filename!n" ; next; }
  19.     
  20.     $type = ($mode & 070000) >> 12;
  21.     
  22.     if ($type != 0) {
  23. print "File ". $dirpath ."/". $filename ." its not regularn";
  24. next;
  25.     }
  26.     convertfile($filename);
  27. }
  28. closedir FILEDIR;
  29. sub convertfile {
  30.     my $filen = shift;
  31.     my ($tab, $col, $val);
  32.     open FILE, $dirpath ."/". $filen or die "Error opening file ". $dirpath ."/". $filen ."n";
  33.     if (open FILEOUT, $dirpath2 ."/". $filen) {
  34. die "Found existent file : ". $dirpath2 ."/". $filen ."!! Plese provide an empty output directory !!";
  35.     }
  36.     open FILEOUT, ">". $dirpath2 ."/". $filen or die "Error opening output file ". $dirpath2 ."/". $filen ."n";
  37.     print "Converting file ". $filen ."... ";
  38.     while($line = <FILE>) {
  39. if ($line =~ m/".*"=".*"/) {
  40.     $line =~ m/^"([A-Za-z0-9]+)\\(.*)"="(.*)"n$/;
  41.     $tab = $1;
  42.     $col = $2;
  43.     $val = $3;
  44.     if ($tab =~ m/^team$/i) {
  45. print FILEOUT """. $tab . "\\WAR3\\" . $col . ""="" . $val .""n";
  46. next;
  47.     }
  48.     if ($tab =~ m/^record$/i) {
  49. if ($col =~ m/^solo/i or $col =~ m/^team/i or $col =~ m/^ffa/i or
  50.     $col =~ m/^orcs/i or $col =~ m/^humans/i or $col =~ m/^nightelves/i or $col =~ m/^undead/i or $col =~ m/^random/i) {
  51.     print FILEOUT """. $tab . "\\WAR3\\" . $col . ""="" . $val .""n";
  52.     next;
  53. }
  54.     }
  55.     print FILEOUT $line;
  56. }
  57.     }
  58.     close FILEOUT;
  59.     close FILE;
  60.     print "donen";
  61. }
  62. sub header {
  63.     print "Account files WAR3 converting tool.n";
  64.     print " Copyright (C) 2003 Mihai RUSU (dizzy@roedu.net)n";
  65.     print " People Versus People Gaming Network (www.pvpgn.org)nn";
  66. }
  67. sub usage {
  68.     &header;
  69.     print "Usage:nntconvert_w3.pl <inputdir> <outputdir>nn";
  70.     print "t <inputdir>t: directory with the input account filesn";
  71.     print "t <outputdir>t: directory where the output account files will residen";
  72. }