Font
[thread]7432[/thread]

Alle Dateien im Dir auslesen: Permission denied



<< >> 6 entries, 1 page
Rambo
 2005-11-04 13:43
#59712 #59712
User since
2003-08-14
803 articles
BenutzerIn

user image
hallo zusammen,

wollte in einem Verszeichnis alle dateien auslesen und nach einem bestimmten string suchen.
bekomme aber Permission denied und weis nicht wieso
OS W2K

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use strict;
use Cwd;

my $line;
my $count = 0;
my $dir = ("F:\\PIXX_TOOLS\\COUNT_TX\\LOG");

opendir(DIR, $dir) or die $!;
my @files = readdir(DIR);
closedir(DIR) or die $!;

foreach (@files)
      {
open(IN, $dir)or die $!;
while ($line = <IN>)
            {
             $count++ if ($line =~ /\QS\/R Sending command\E/g);
            }
       close IN;
       print "$count TX\n";
      }


danke im voraus

gruss rambo
pq
 2005-11-04 13:54
#59713 #59713
User since
2003-08-04
12207 articles
Admin1
[Homepage]
user image
[quote=Rambo,04.11.2005, 12:43]wollte in einem Verszeichnis alle dateien auslesen und nach einem bestimmten string suchen.[/quote]
alle? alle dateien in einem verzeichnis beinhalten auch ., .. und eventuell
vorhandene andere verzeichnisse. die willst du bestimmt nicht öffnen, denn
das geht überhaupt nicht.
Quote
Code: (dl )
1
2
3
4
5
opendir(DIR, $dir) or die $!;
...
foreach (@files)
      {
    open(IN, $dir)or die $!;

aua.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2005-11-04 14:45
#59714 #59714
User since
2003-08-04
14371 articles
ModeratorIn
[Homepage] [default_avatar]
Ich persoenlich wuerde hier mit CPAN:Tie::File arbeiten...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use strict;
use Cwd;
use Tie::File;

my $line;
my $count = 0;
my $dir = ("F:\\PIXX_TOOLS\\COUNT_TX\\LOG");

opendir(DIR, $dir) or die $!;
my @files = map{$dir.'/'.$_}grep{$_ !~ /^\.\.?$/}readdir(DIR);
closedir(DIR) or die $!;

for my $file(@files){
tie my @array,'Tie::File',$file or die $file." >> ".$!;
if(grep{$_ =~ /$suchstring/}@array){
print "In $file ist $suchstring vorhanden\n";
}
untie @array;
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2005-11-04 15:18
#59715 #59715
User since
2003-08-04
12207 articles
Admin1
[Homepage]
user image
ich würde nicht mit Tie::File arbeiten, sondern die Datei von Hand durchgreppen und
aus der Schleife rausgehen, sobald die Zeile gefunden wurde.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Rambo
 2005-11-04 16:11
#59716 #59716
User since
2003-08-14
803 articles
BenutzerIn

user image
hallo,

hab es erst mal so gelöst indem ich die einzelnen dateien
in ein array geschrieben habe und dann hat auch der foreach
teil funktioniert.
werde mir aber dein script renee noch mal anschauen.

gruss aus dem regnerischen ffm nach känguruh land :-)

fürti rambo
pq
 2005-11-04 17:17
#59717 #59717
User since
2003-08-04
12207 articles
Admin1
[Homepage]
user image
[quote=Rambo,04.11.2005, 15:11]hab es erst mal so gelöst indem ich die einzelnen dateien
in ein array geschrieben habe und dann hat auch der foreach
teil funktioniert.[/quote]
du hast im ursprünglichen code auch alle dateien in ein array geschrieben.
und hast in jedem durchlauf ein open auf $dir gemacht, also auf das
verzeichnis. das war der fehler. das hatte ich ja auch geschrieben.
also wenn du in deiner lösung jetzt genau dasselbe machst wie im
ursprünglichen code, frage ich mich, wie das funktionieren soll, aber wenn's
denn tut, sollte ich wohl besser nicht nachfragen...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 6 entries, 1 page



View all threads created 2005-11-04 13:43.