Increment a string and write it to a file after each result.

Increment a string and write it to a file after each result.

Post by cglobal2 » Sat, 25 Oct 2003 00:01:29


This script receives input from the command line. I put in for
example "www.musicdownload.com/song1.mp3". The script looks for the
".mp3" extension and increments the preceeding number to 10. This
works fine, printing the result to the screen. As you can see, I
would like to write the results to a file called "wget_input". Wget
reads from this file and the songs are retrieved. The problem I have
is with writing all of the results to the file, in this
case/www.musicdownload.com/song10.mp3" gets written to the file only.
I know it must be incremented and written after each result, but I
don't know how to go about constructing the loop. Any ideas?



#! /usr/bin/perl -w
#
# mp3_search
#

print "Input path to video archive\n";
$stdinput = <STDIN> ;
chomp ($stdinput);
$path = "$stdinput";

$count = substr ($path, rindex ($path, ".mp3") - 1, 1);

for ($count .. 10)
{ substr ($path, rindex ($path, ".") - 1, 1, $count++); print
"$path\n"; }

open (OUTPUTFILE,">wget_input")|| die "Failed to open
wget_input\n";

printf OUTPUTFILE "$path";

close OUTPUTFILE;
 
 
 

Increment a string and write it to a file after each result.

Post by J. Gleixne » Sat, 25 Oct 2003 01:27:27


In place of printing it to the screen, print it to your OUTPUTFILE in
your loop. Using your code, that'd be something like:

open (OUTPUTFILE,">wget_input")|| die "Failed to open wget_input: $!\n";
#include reason
for ($count .. 10)
{
substr ($path, rindex ($path, ".") - 1, 1, $count++);
print OUTPUTFILE "$path\n";
}
close (OUTPUTFILE);

I'd probably get the path, up to the integer, and then just print it and
forget about the multiple calls to substr, or do the index once, and
store it before the for loop.

for ($count .. 10)
{
print OUTPUTFILE $new_path, $count++, ".mp3\n";
}

 
 
 

Increment a string and write it to a file after each result.

Post by cglobal2 » Sat, 25 Oct 2003 19:43:38


Thanks for the help. Works like a charm.