Schrift
[thread]3677[/thread]

dateien aus dem verzeichnis lesen (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
Dubu
 2006-04-15 04:23
#34276 #34276
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

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

my $suffix = '.a00';

my @dateien = glob("*$suffix");
my @ohneendung;
for my $datei (@dateien) {
my $name = basename($datei,$suffix);
print "$name\n";
push(@ohneendung,$name);
}

# mache hier etwas mit @ohneendung
shaihulud
 2006-04-25 20:24
#34277 #34277
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
ich habe einen dateinamen, sagen wir "X" und in meinem Verzeichnis stehn auf jeden fall 2 dateien die X.jpl und X.a00 heissen. Wenn ich jetzt noch alle anderen Dateien die X heissen aber ne andere Endung haben bekommen möchte wie mache ich das?

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

my $suffix = '.a00';

my @dateien = glob("*$suffix");
my @ohneendung;
for my $datei (@dateien) {
  my $name = basename($datei,$suffix);
  print "$name\n";
  push(@ohneendung,$name);
}


Etwas in der Art aber nun möchte ich wie gesagt von dem Präfix ausgehn und alle suffixe speichern die X als Präfix haben und nicht die suffixe jpl und a00 haben.\n\n

<!--EDIT|shaihulud|1145982436-->
pq
 2006-04-25 23:08
#34278 #34278
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
*$suffix
$praefix*
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
shaihulud
 2006-04-26 02:23
#34279 #34279
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
jo das weiss ich aber ich will da ne bedingung die mir das präfix nur nimmt wenn bestimmte präfixe nicht dabei sind.. ich weiss nicht wie ich das da beides rein kriege..
renee
 2006-04-26 09:36
#34280 #34280
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du weißt, welche Präfixe es nicht sein dürfen:

Code: (dl )
1
2
3
4
5
6
7
8
@nicht_erlaubte_praefixe = qw(hallo X Y);
for my $datei (@dateien) {
my $name = basename($datei,$suffix);
print "$name\n";
if(!grep{$name =~ /^$_/}@nicht_erlaubte_praefixe){
push(@ohneendung,$name);
}
}



Wenn Du weißt, welche Präfixe es sein sollen:
Code: (dl )
1
2
3
4
5
6
7
8
@erlaubte_praefixe = qw(hallo X Y);
for my $datei (@dateien) {
my $name = basename($datei,$suffix);
print "$name\n";
if(grep{$name =~ /^$_/}@erlaubte_praefixe){
push(@ohneendung,$name);
}
}


siehe perldoc -f grep
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-26 11:39
#34281 #34281
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
nein.. ihr versteht mich alle falsch *g
der Präfix steht fest. aber ich will suffixe haben. ich geb mal n Beispiel:

P007201031.JPL
P007201031.a00
P007201031.doc
P007201031.xls

mein präfix ist P007201031 ich möchte nun alle dateien in dem ordner durchgehn wo auch diese 4 dateien stehn und alle prüfen ob sie den präfix P007201031 haben und NICHT die Endung Jpl und a00. d.h. er müsste mir am ende diese beiden rausspucken :

P007201031.doc
P007201031.xls
renee
 2006-04-26 11:53
#34282 #34282
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename;

my $praefix = 'P007201031';

my @dateien = glob("P007201031.*");
my @ohneendung;
for my $datei (@dateien) {
my $name = basename($datei,$suffix);
print "$name\n";
if($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-26 15:24
#34283 #34283
User since
2006-04-12
76 Artikel
BenutzerIn
[default_avatar]
Use of uninitialized value in quotemeta at c:/Perl/lib/File/Basename.pm line 220
.
P007201031.JPL
Use of uninitialized value in pattern match (m//) at 1.pm line 14.
Use of uninitialized value in quotemeta at c:/Perl/lib/File/Basename.pm line 220
.
P007201031.TIF
Use of uninitialized value in pattern match (m//) at 1.pm line 14.

ist die fehlermeldung.. jemand ne ahnung?

line 14:
Code: (dl )
 if($suffix !~ /(jpl|a00)/i){ 
Strat
 2006-04-26 16:55
#34284 #34284
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
vielleicht so?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl
use strict;
use warnings;

my $praefix = 'P007201031';

for my $datei (glob("$prefix.*")) {
if( my ($suffix) = $datei =~ /^\Q$prefix\E\.(.+)$/ ) {
print "Suffix: $suffix\n";
} # if
}
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2006-04-26 18:26
#34285 #34285
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach aus
Code: (dl )
1
2
3
   if($suffix !~ /(jpl|a00)$/i){
push(@ohneendung,$name);
}
ein
Code: (dl )
1
2
3
   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/
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



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