Advertisement
KujiUn

Wikidot Move Reader

Feb 4th, 2012
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.64 KB | None | 0 0
  1. use strict;
  2. use warnings;
  3. use Win32::Clipboard;
  4. my $CLIP = Win32::Clipboard();
  5.  
  6. open FILE, "FireMovesSource.txt" or die $!;
  7.  
  8. my $mode = 1;
  9. my $data = "||~ Name ||~ Freq ||~ AC ||||~ Damage ||~ Range ||~ Special Effect ||~ Contest ||\n";
  10.  
  11. while (my $line = <FILE>) {
  12.     chomp $line;
  13.    
  14.     next if ($line =~ m/Moves/ and $mode eq 1);
  15.     next if ($line eq "");
  16.    
  17.     die "Please recheck file for Grant misplacement." if ($line =~ m/Grant/ and $mode eq 1);
  18.    
  19.     if ($mode eq 1) {
  20.         my @move = split(/ - /, $line);
  21.         $data .= "||~ $move[0] || ";
  22.         $mode++;
  23.         next;
  24.     } elsif ($mode eq 2) {
  25.         my @det = split(/ - /, $line);
  26.         my $num = $#det;
  27.         $det[$num] =~ s/None/-/;
  28.         $data .= "$det[$num-1] || $det[$num] || ";
  29.         if ($num eq 1) {
  30.             $data .= "- || ";
  31.         } else {
  32.             $data .= "$det[0] || ";
  33.         }
  34.         $mode++;
  35.         next;
  36.     } elsif ($mode eq 3) {
  37.         if ($line =~ m/Field - No Damage/) {
  38.             $data .= "[[image N.png]] || Field, ";
  39.         } else {
  40.             my @detail = split(/ - /, $line);
  41.             $data .= "[[image A.png]] || " if ($detail[0] eq "Attack");
  42.             $data .= "[[image S.png]] || " if ($detail[0] eq "Special Attack");
  43.             $data .= "[[image N.png]] || " if ($detail[0] eq "No Damage");
  44.             $data .= "$detail[1], ";
  45.         }
  46.         $mode++;
  47.         next;
  48.     } elsif ($mode eq 4) {
  49.         $line =~ s/Effect: //;
  50.         $data .= "$line || ";
  51.         $mode++;
  52.         next;
  53.     } elsif ($mode eq 5) {
  54.         my @check = split(/ - /, $line);
  55.         if ($#check eq 0) {
  56.             $data .= "$line || ";
  57.             $mode++;
  58.             next;
  59.         } else {
  60.             $data .= "- || ";
  61.             $mode++;
  62.             redo;
  63.         }
  64.     } elsif ($mode eq 6) {
  65.         $data .= "$line ||\n";
  66.         $mode = 1;
  67.         next;
  68.     }
  69. }
  70.  
  71. $CLIP->Set($data);
  72. print "Clipboard successfully set.";
  73. <>;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement