Solved

Convert Perl to Visual Basic

Posted on 2000-04-26
10
266 Views
Last Modified: 2012-05-04
I have a Perl Script and I don't write Perl.  I know the script is moving files to folders based on the names of the files.  Rather than learn Perl and convert it, I'll post it.  Please help me decipher it and give the appropriate VB Commands for the various sections.  I'm not asking for a total conversion (but it would be nice!):

#File_Move.pl Moves or copies a file from one folder to another.
#
$currtime = time();
$timelist = localtime ($currtime);
$execute_time = $timelist;
$execute_time =~ s/^.{11}//g;
$execute_time =~ s/.{5}$//g;
$timelist =~ s/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]//;
$Log_out_file = $timelist;
$Log_out_file =~ s/ /_/g;
$Log_out_file =~ s/__2000/_2000/;
$Destination = "";

#Execute Command input queue sends filename with the path.
$In_File = $ARGV[0];
$Out_File = $In_File;

#Strip the path off of the filename
$Out_File =~ s/[a-z,A-Z]:\\//g;
$Out_File =~ s/\w+\\//g;

#Figure out which folder the file came in.
if ($In_File =~ /^d:\\icl_pages\\/i) {
      goto ICL;
} elsif ($In_File =~ /^d:\\ClassPS\\/i) {
      goto ICL;
} elsif ($In_File =~ /^e:\\Send_to_OMan\\/i) {
      goto STO;
} elsif ($In_File =~ /^e:\\OPI_Incoming_Art\\/i) {
      goto OPI;
} elsif ($In_File =~ /^d:\\DTI_Pages\\/i) {
      goto DTI;
} elsif ($In_File =~ /^d:\\DTI_11\\/i) {
      $Destination = "d:\\Drop\\DTI_11-5\\$Out_File";
      goto Move_File;
} elsif ($In_File =~ /^d:\\DTI_12\\/i) {
      $Destination = "d:\\Drop\\DTI_12-5\\$Out_File";
      goto Move_File;
}


DTI:
if ($Out_File =~ /^cp/i) {
      $Destination = "d:\\Drop\\DTIClassPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^cx/i) {
      $Destination = "d:\\Drop\\Dti_12-5\\$Out_File";
      goto Move_File;
} goto BADFILENAME;


ICL:
if ($Out_File =~ /^ap/i) {
      goto NewsProof;
} elsif ($Out_File =~ /^ax/i) {
      $Destination = "d:\\Drop\\AdvNeg\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^cc/i) {
      $Destination = "d:\\Drop\\ClsTest\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^cp/i) {
      $Destination = "d:\\Drop\\ClsPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^cx/i) {
      $Destination = "d:\\Drop\\ClsNeg\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^dc/i) {
      $Destination = "d:\\Drop\\DailyColorNeg\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^dx/i) {
      $Destination = "d:\\Drop\\DailyNeg\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx/i) {
      goto OPI;
} elsif ($Out_File =~ /^vp/i) {
      $Destination = "d:\\Drop\\ClsDsPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^xp/i) {
      goto AdProof;
} goto BADFILENAME;


NewsProof:
if ($Out_File =~ /^ap\w\w[0-9]/i) {
      $Destination = "D:\\Drop\\EdTabPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^ap\w\w[a,b,c,d,m,y]/i) {
      $Destination = "D:\\Drop\\EdPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^ap\w\w[e,f,g,h,j,k,s,u,v,w,x,z]/i) {
      $Destination = "D:\\Drop\\EdAdvPrf\\$Out_File";
      goto Move_File;
} goto BADFILENAME;


AdProof:
if ($Out_File =~ /^xp\w\w[0-9]/i) {
      $Destination = "D:\\Drop\\AdTabPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^xp\w\w[a,b,c,d,y]/i) {
      $Destination = "D:\\Drop\\AdPrf\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^xp\w\w[e,f,g,h,j,k,s,u,v,w,x,z]/i) {
      $Destination = "D:\\Drop\\AdAdvPrf\\$Out_File";
      goto Move_File;
} goto BADFILENAME;


#Send_to_OMan ,a,b,c
STO:
if ($Out_File =~ /^[0-9,A,B,C,D]/i) {
      goto AdDir;
} elsif ($Out_File =~ /^g/i) {
      $Destination = "e:\\hires\\dk1\\tmp\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^k/i) {
      $Destination = "e:\\hires\\dk1\\cls\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^n/i) {
      $Destination = "e:\\hires\\dk1\\prm\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^p/i) {
      $Destination = "e:\\hires\\dk1\\ctm\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^s/i) {
      $Destination = "e:\\hires\\dk1\\cls\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tf/i) {
      $Destination = "e:\\hires\\dk1\\cls\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^x/i) {
      $Destination = "e:\\hires\\dk1\\tmp\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx/i) {
      goto OPI;
} goto BADFILENAME;
$Destination = "e:\\Bad_Filename\\$Out_File";
goto Move_File;

#Parse on the 4th character and move the file to final directory.
AdDir:
if ($Out_File =~ /^\w\w\w0/) {
      $Destination = "e:\\hires\\dk1\\ad0\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w1/) {
      $Destination = "e:\\hires\\dk1\\ad1\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w2/) {
      $Destination = "e:\\hires\\dk1\\ad2\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w3/) {
      $Destination = "e:\\hires\\dk1\\ad3\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w4/) {
      $Destination = "e:\\hires\\dk1\\ad4\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w5/) {
      $Destination = "e:\\hires\\dk1\\ad5\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w6/) {
      $Destination = "e:\\hires\\dk1\\ad6\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w7/) {
      $Destination = "e:\\hires\\dk1\\ad7\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w8/) {
      $Destination = "e:\\hires\\dk1\\ad8\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^\w\w\w9/) {
      $Destination = "e:\\hires\\dk1\\ad9\\$Out_File";
      goto Move_File;
} goto BADFILENAME;


OPI:
if ($Out_File =~ /^0,1\w\w\wab/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Incoming\\Apt_Book\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^0,1\w\w\wff/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Incoming\\FarmFresh\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^0,1\w\w\who/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Incoming\\Home_Search\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^t/i) {
      goto Tab;
} goto BADFILENAME;


Tab:
if ($Out_File =~ /^tx\w\w\wab/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Incoming\\Apt_Book\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wal/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Special_Style\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wba/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Bayside\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\w(be|cn)/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wbx/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Bayside\\xtra_bayside\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wcc/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\coast\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wce/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\clipper\\east\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\w(cl|pe)/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\clipper\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wco/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\compass\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\w(cu|en)/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\currents\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wcw/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\clipper\\west\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wdc/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\port_folio\\Downtown_Connection\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wfs/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Family_Style\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wga/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Gator\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\who/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Incoming\\Home_Search\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\whr/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Inside_Business\\Inside_Hampton\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\whs/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Home_Style\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wib/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Inside_Business\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wis/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Inside_Special\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wke/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Kempsville\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wkx/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Kempsville\\xtra_kempsville\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wlx/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Lynnhaven\\xtra_lynnhaven\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wly/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Lynnhaven\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wnc/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\tvweek\\north_carolina\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wof/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\oceanfront\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wox/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\oceanfront\\xtra_oceanfront\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wpa/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Princess_Anne\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wpb/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Port_folio\\Portfolio_Bride\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wpf/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Port_folio\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wph/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Port_folio\\Portfolio_Home\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wpp/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Port_folio\\Peninsula_Parent\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wps/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Port_folio\\Portfolio_Special\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wpx/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\beacon\\Princess_Anne\\xtra_princess_anne\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\w(re|rw|tr)/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\realestate\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wri/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Inside_Business\\Inside_Richmond\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wsg/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Port_folio\\Stockley_Gardens\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wsh/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Inside_Business\\Inside_Hampton\\Hampton_Special\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wsp/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\special\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wsr/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\Inside_Business\\Inside_Richmond\\Richmond_Special\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wss/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\jobs_today\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wst/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\style\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\w(su|ta)/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\sun\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wtp/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\port_folio\\Tidewater_Parent\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wtv/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\tvweek\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wty/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\Circuit_City\\$Out_File";
      goto Move_File;
} elsif ($Out_File =~ /^tx\w\w\wwa/i) {
      $Destination = "e:\\hires\\dk1\\OPI\\welcome_aboard\\$Out_File";
      goto Move_File;
}

BADFILENAME:
`net send nt_omclient_1 "$Out_File is not a legitimate filename or was sent wrong."`;
`net send nt_omclient_2 "$Out_File is not a legitimate filename or was sent wrong."`;
$Destination = "e:\\Bad_Filename\\$Out_File";
goto Move_File;

Move_File:
rename ($In_File, $Destination);

Log:
open (log_file, ">> g:\\tech_logs\\Move_File_Logs\\File_Move_$Log_out_file.txt");
            print log_file ("$In_File M--> $Destination at $execute_time\n");
close (log_file);

End:

0
Comment
Question by:dakarr
  • 5
  • 5
10 Comments
 
LVL 4

Expert Comment

by:adam923
Comment Utility
just about every other line of that program has pattern matching statements ( /blah/ is a pattern ) and those would be quite hard to translate to vb, it's not built in to that language... any way you could just install perl and use the script as is? perl is available for free on windows or unix
0
 

Author Comment

by:dakarr
Comment Utility
Adjusted points from 400 to 500
0
 

Author Comment

by:dakarr
Comment Utility
Are you saying that it is difficult for VB to look at a file name, break it down into sections, and move it to another folder?  I know very little about Perl and know a small amount of VB but I have a hard time believing that it's that difficult to do.  The structure seems like it would be very similar to Perl.

It seems as though the $ at the top of the script are much like Dim statements, the next section calls a function for each type of file based on the characters in the name, the functions follow, and the end is for error handling.

My objective here is to convert the script to VB so that I can build a form and build a graphical interface so operators can watch what is occurring.  The script is presently running and working - however - I want to convert it to VB, that's why I posted the question.
0
 
LVL 4

Expert Comment

by:adam923
Comment Utility
ok, thanks for the clarification... the $ is just a symbol that precedes any scalar variable name, there are no declarations in perl, varaibles are just used on the fly
since the perl script seems to require no user interaction why don't you just create a vb front end that runs the perl script with a system call?
0
 

Author Comment

by:dakarr
Comment Utility
The company I work for is moving away from Perl, Java, CGI, etc. and trying to put everything in C, VB, VBA.  Not my choice, theirs.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 4

Expert Comment

by:adam923
Comment Utility
ok, i'll give it a shot after i get back from work tonight...
0
 

Author Comment

by:dakarr
Comment Utility
Thanks - sorry for all the miscommunication.
0
 
LVL 4

Expert Comment

by:adam923
Comment Utility
ok, i have it ready but rather than post 400 lines of code it would be nice to email you the vb project.  i have visual basic version 5 but if yours is newer i'm sure it will convert the project for you
please post your email address or send it to adammitz@hotmail.com if you don't feel comfortable posting it.
0
 
LVL 4

Accepted Solution

by:
adam923 earned 500 total points
Comment Utility
i'm going to post an answer since i've already mailed you the code
0
 

Author Comment

by:dakarr
Comment Utility
Great - thank-you
0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

A short article about problems I had with the new location API and permissions in Marshmallow
Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now