Schrift
[thread]3677[/thread]

dateien aus dem verzeichnis lesen (Seite 3)

Leser: 1


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
shaihulud
 2006-04-28 16:10
#34286 #34286
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
also so wie ich deinen code zusammengeschnipselt habe sollte er so aussehn :

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename;

my $praefix = 'P007201031';
my $suffix;
my @dateien = glob("P007201031.*");
my @ohneendung;
for my $datei (@dateien) {
 my $name = basename($datei,$suffix);
 if(defined $suffix and $suffix !~ /(JPL|a00)$/i){
   push(@ohneendung,$name);
 }
}
foreach my $ele (@ohneendung){
 print "$ele\n";
}


er gibt noch immer fehler aus (Use of uninitialized value in quotemeta at c:/Perl/lib/File/Basename.pm line 220) und was ich mich frage ist wo du das praefix benutzt.
hab auch mal my
$name = basename($datei,$suffix);
durch
my $name = basename($datei,$praefix);
ersetzt. so gibt er zwar keinen fehler aber er spuckt auch nichts aus, was bedeutet dass er nichts in ohneendung drin stehn hat..\n\n

<!--EDIT|shaihulud|1146226732-->
renee
 2006-04-28 17:02
#34287 #34287
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
for my $datei (@dateien) {
my ($name,$suffix) = $datei =~ /([^\/\\]*?)\.([^\.]+)$/;
if(defined $suffix and $suffix !~ /(JPL|a00)$/i){
push(@ohneendung,$name);
}
}
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/
shaihulud
 2006-04-28 17:40
#34288 #34288
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
$datei =~ /([^\/\\]*?)\.([^\.]+)$/;

also was das hier sein soll versteh ich nicht wirklich aber ich hab auf cpan gelesen dass basename :

basename prints the file component of a path. A second argument to basename is interpreted as a suffix to remove from the file. If the suffix is sandwiched between slashes, the suffix is considered a Perl regular expression, anything at the end of the string that matches is removed before printing it out.

das macht nicht das was ich will.. ich will ja grad die suffixe....

du schneidest mit basename die suffixe ab und gibst mir alles vor dem suffix..

ich will genau den umgekehrten effekt eigentlich.. ich will dass er mir alle suffixe gibt.
wie gesagt: habe 3 dateien. sie heissen:


P007201031.a00
P007201031.JPL
P007201031.xls

ich möchte dass er die dateien eine nach der andere im pfad durchgeht und mir alle suffixe rausfiltert die nicht JPL und a00 sind...
das heisst P007201031.xls ist in diesem fall die interessante Datei die ich gespeichert haben möchte,der ich am ende (meinetwegen mit split) das suffix xls separieren kann.

Ich möchte die funktion eben nach dem ausschlussprinzip haben weil ich nicht weiss ob es ne xls doc tif oder sonstwas datei ist die ich am ende haben muss. ich weiss nur dass die JPL und a00 datei nicht interessant für mich sind..\n\n

<!--EDIT|shaihulud|1146231802-->
GwenDragon
 2006-04-28 19:43
#34289 #34289
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
my @files;
foreach my $f (glob( "P007201031.*" ) ) {
 my ($basename, $path, $ext ) = fileparse ( $f, "\..+" );
 next if $ext =~ /(JPL|a00)$/;
 push( @files, $f );
}
\n\n

<!--EDIT|GwenDragon|1146239130-->
shaihulud
 2006-04-29 15:48
#34290 #34290
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
danke sehr :)
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2006-04-12 17:50.