The Best thing will be to avoid a script
In IE
  Select File -> Import & Export in the dialog that appear,select export 
favourites,select Favourites source folder ( select the topmost level, 
to select all).

This creates a html file of your favourites and copy this file as your 
bookmarks.html in mozilla


Phil wrote:
> I've been working on moving from Win2k to Linux and learning Perl 
> at the same time, so I thought I'd kill two birds with one stone and 
> write a Perl program to convert my IE bookmarks to Mozilla format.  
> The meat of the code is at the end - comments and suggestions are 
> more than welcome.
> 
> At any rate, the code works and I have my bookmarks in Mozilla.
> However, I'm not completely happy with it.  The output is too 
> closely tied to the input.  I'd like to rewrite it so that the 
> output type could be specified - html, Mozilla, Galeon, etc. 
> I'm not sure where to start, though.  I had thought of reading in
> the favorites and storing it in a tree-type data structure, but
> wasn't sure exactly how to do this or how to write a routine 
> to walk the tree.  Any ideas or pointers to resources?
> 
> -Phil
> 
> code follows:
> 
> open(OUTFILE,">$outfile") || 
>       die "Couldn't open $outfile for writing: $!";
> 
> print_header(\*OUTFILE,$rootdir);
>  
> # Walk the directory tree and print the links 
> print_favs(\*OUTFILE,$rootdir);
> 
> print_footer(\*OUTFILE);
> 
> # recursive function to walk the directory tree underneath
> #   the directory passed in as a parameter.  First the directory
> #   is opened, then a list of the files/folders is read into
> #   an array, and then the array is split into a list of files and
> #   a list of directories.  html links are output for the files
> #   and the function is called again for each of the directories.
> #   Stopping condition is when a directory is reached that has only
> #   files, no sub-directories.   
> sub print_favs {
>    my $fh = $_[0];  # output file handle
>    my $dir = $_[1]; # current directory
>    my (@itemlist, @filelist, @dirlist);
> 
>    opendir(CURDIR, $dir) || die "Couldn't open $dir: $!\n";
>    @itemlist = readdir(CURDIR);
>    chdir($dir) || die "Couldn't chdir to $dir: $!\n";
>   
>    if ($dir ne $rootdir) {
>    print $fh "<dt><h3 id=\"NC:BookmarksRoot\#$foldernum\"\>$dir</h3>\n";
>    print $fh "<dl><p>\n";
>       }
>       $foldernum++;
>    
>    foreach (@itemlist) {
>       # print $fh "Item: $_\n";
>       # Only process non-symbolic links
>       if (!(-l $_)) {              
>          if ((-d $_) && ($_ !~ /\.\.?/)) {
>             @dirlist = (@dirlist, $_);
>          }
>          elsif ((-f $_) && ($_ =~ /\.url$/i)) {
>             @filelist = (@filelist, $_);
>          }
>       } 
>    }
>    foreach (sort @filelist) {
>       print $fh "<dt>".getlink($_)."\n";
>    }
>    foreach (sort @dirlist) {
>       print_favs($fh,$_,$foldernum);
>    }
>    print $fh "</dl><p>\n";
>    chdir("..");
> }
>   
> # takes the name of a windows internet shortcut file (from 'Favorites')
> #   opens the file and parses out the url it refers to.  The function 
> #   returns an html link with the url as the href and the name of 
> #   the file (without the .url file extension) as the label
> sub getlink {
>   my ($file, $line, $url, $name, $link); 
>   $file = $_[0];
>   open(URLFILE,$file) || die "Can't open $file: $!";
>   while (defined($line=<URLFILE>) && ($line !~ /^URL=/)) {
>   }
>   if (defined($line)) {
>      chomp $line; 
>      $url = substr($line,4);
>      $url =~ s/\cM//;
>      #print "URL:  $url\n";
>      $name = $file; 
>      $name =~ s/.+\///;
>      $name =~ s/\.url//;
>      #print "Name:  $name\n"; 
>      $link = "<a href=\"".$url."\">$name</a>";
>      close(URLFILE);
>      return $link;
>    }
>    else {
>       return ""; 
>    }
> }
> 
> 



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to