Perl Free Code

 

Print A File Print a File.pl: File Selector [view source]


Voorbeeldprogramma waarin de gebruiker een bestand uit mag kiezen met deze dialoog uit de Windows API:  MSComDlg.CommonDialog. In dit voorbeeld wordt het uitgekozen bestand als tekst ingelezen en op de console afgedrukt.

 

 

#!/usr/local/bin/perl
# 28 juni 2003, by jan croonen.
# demo that uses MSComDlg.CommonDialog

use strict;
use OLE;

my $myfile = getfile();
sub getfile (){
  my $dirfilter = "Tekst (*.txt)|*.txt|HTML (*.htm)|*.htm|ASP (*.asp)|*.asp|Alle bestanden(*.*)|*.*";
  return SelecteerBestand("", "Bestand selecteren", $dirfilter, 1, 0);
}
sub SelecteerBestand(){
  my ($dir, $titel, $filter, $index, $schakelopties) = @_;
  my $dialoog = CreateObject OLE "MSComDlg.CommonDialog"
  || die "CreateObject: $!";
  $dialoog->{Filter} = $filter;
  $dialoog->{FilterIndex} = $index;
  $dialoog->{Flags} = $schakelopties;
  $dialoog->{MaxFileSize} = 260;
  $dialoog->{CancelError} = 0;
  $dialoog->{DialogTitle} = $titel;
  $dialoog->{InitDir} = $dir;
  $dialoog->ShowOpen();
  $schakelopties = $dialoog->{Flags};
  ($dialoog->{FileName});
}

unless (open (INFILE, $myfile)) {
  die "$0: kan IN: '$myfile' niet openen, $!\n";
}
print "printing: $myfile\n\n";

while( <INFILE> ){
  print;
}

unless (close (INFILE)) { die "sluitfout $myfile: $!\n";}
print "\nDruk op Enter";
 

<STDIN>; # wait
print "\n";
 

   
List Files Directory Selector: Lijst Bestanden [view source]

Programma dat in een directory een lijstje maakt van de bestanden (om ze bijvoorbeeld voorwaardelijk te kopieren naar een andere directory). Hierbij wordt gebruik gemaakt van Win32.GUI.BrowseForFolder. U moet eventueel nog de package Win32 GUI installeren, bijvoorbeeld met Win32-GUI.zip. Na het runnen van het commando ppm install Win32-GUI.ppd - dit doet u vanaf de locatie waar Win32-gui.ppd staat - behoort de map GUI onder (installdrive):\perl\site\lib\Win32 te staan.

 

 

#!/bin/perl
# 28 juni 2003, by jan croonen.
# demo that uses Win32.GUI.BrowseForFolder

use strict;
require Win32::GUI;

my $picdir = getfile();
sub getfile (){
  my $folder = Win32::GUI::BrowseForFolder(
  -root => "",
  -includefiles => 1,
  );
}

unless (chdir $picdir) {print "Kan pad niet naar 'huidige' wijzigen: $!\n"};
unless (opendir(THISDIR, ".")){ print "Kan huidige dir niet openen: $!\n"};

my @files = readdir(THISDIR);
closedir(THISDIR);
for (@files) {
  if (/^\./) {next;} #skip . and ..
  print;
  print "\n";
}
print "\nDruk op Enter";
<STDIN>; # wait
print "\n";