Schrift
[thread]6992[/thread]

Code wird NICHT ausgeführt

Leser: 1


<< >> 7 Einträge, 1 Seite
Gast Gast
 2005-05-15 01:01
#54881 #54881
Servus

Ich habe ein sehr seltsames Problem:
In manchen Konstellationen wird bestimmter Code nicht ausgeführt.  
Aktuell habe ich Folgendes kleine Skript, das mittels MP3::ID3v1Tag mp3-Dateien umbenennen soll. Hier der Problemcode:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sub id3() { 
$i = 0;
   
  while ($i < $sizeOfFiles) {
   
    $mp3_file = new MP3::ID3v1Tag($files[$i]);
   
   $artist = $mp3_file->get_artist();
   $album = $mp3_file->get_album();
   $title = $mp3_file->get_title();
   
   #Titelnummer suchen
   $files[$i] =~ /(\d*)/;
     
     rename $files[$i], "$artist - $album -$1- $title";
   $i++;
 
  }#while
   
}#end id3


Lasse ich mir den Inhalt von $files[$i] oder "$artist - $album -$1- $title" ausgeben, erhalte ich die richtigen Ausgaben.

Folgender Code z.B. funktioniert (hier den im Array stehenden Titeln der String in $start vorangesetzt):

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sub startWith() { 
  while () {
    print "The files should start with: ";
    chomp($start = <STDIN>);
    if ($start ne '') {
       last;
     }#if
  }#while
   
  $i = 0;
  while ($i < $sizeOfFiles) {
     rename $files[$i], "$start$files[$i]";
     $i++;
  }#while
}#end startWith

Mir scheint es, als wird der Command rename im sub id3() einfach nicht ausgeführt.
Hat dafür jmd. eine Lösung??

Danke!
pKai
 2005-05-15 01:17
#54882 #54882
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
(Für Dateinamen) illegale Zeichen im resultierenden Namen?
I sense a soul in search of answers.
_Sietsch_
 2005-05-15 01:44
#54883 #54883
User since
2005-05-15
26 Artikel
BenutzerIn
[default_avatar]
Nein,
auch wenn ich statt dieser Zeile

Code: (dl )
rename $nix, $auchnix;


schreibe passiert nichts. Sollte ja nun wenigstens mal 'ne Fehlermeldung kommen. Es scheint wirklich als würde der Code nicht ausgeführt.
Wenn ich dich wirklich interessiert, schicke ich dir gerne das ganze Skript!

_Sietsch_
coax
 2005-05-15 01:58
#54884 #54884
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
[quote=_Sietsch_,14.05.2005, 23:44]
Code: (dl )
rename $nix, $auchnix;


schreibe passiert nichts. Sollte ja nun wenigstens mal 'ne Fehlermeldung kommen.[/quote]
Ja, aber auch nur wenn du Perl auffordest Fehler zu melden, meinst nicht ? ;)
Code: (dl )
rename($src, $target) or die $!;


Grusz Christian.
,,Das perlt aber heute wieder...'' -- Dittsche
_Sietsch_
 2005-05-15 02:11
#54885 #54885
User since
2005-05-15
26 Artikel
BenutzerIn
[default_avatar]
*g* Vor Lauter Bäumen den Wald nicht sehen!
Ich dank dir!!!

Ich bekomme den Fehler: "Permission denied..."!
Bin jedoch Owner der Datei und die Datei ist auch nicht schreibgeschützt!

Es liegt wohl daran, wir im Modul mit der Datei umgegangen wird. Ich denke die über den Konstrktor übergebene Datei wird einfach nicht sauber geschlossen...

Ich dank' dir erstmal,

_Sietsch_\n\n

<!--EDIT|_Sietsch_|1116109276-->
_Sietsch_
 2005-05-15 02:44
#54886 #54886
User since
2005-05-15
26 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
$mp3->close();


Man sollte das handle/Objekt auch wieder schliessen, bevor man darauf schreiben will...
Mann, Mann, Mann....
Crian
 2005-05-17 11:55
#54887 #54887
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Generell solltest Du use strict (siehe http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict) und use warnings verwenden und Deine Funktionen so schreiben, dass die Daten sauber übergeben werden.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 7 Einträge, 1 Seite



View all threads created 2005-05-15 01:01.