Entwickler-Ecke

Off Topic - Playlist: Laufwerksbuchstaben ändern


AXMD - Fr 03.03.06 12:10
Titel: Playlist: Laufwerksbuchstaben ändern
Morgen!

Kennt irgendjemand ein Programm, mit dem man möglichst schnell nur den Laufwerksbuchstaben aller Files in einer Playlist ändern kann? Da ich meinen MP3-Ordner auf ein anderes Laufwerk verschieben möchte, ist der Laufwerksbuchstabe logischerweise ein anderer, nur habe ich keine List, alle Playlists deshalb neu zu erstellen.

AXMD


Handycommander - Fr 03.03.06 12:40

was ist des für eine playlist?


AXMD - Fr 03.03.06 12:54

Foobar hat die generiert. Hat die Endung pls. Mit dem Editor kann man nicht viel ausrichten - sind einige "Nicht-ASCII"-Zeichen dabei, die beim Speichern irgendwie verloren gehen, sodass der Player die Playlist dann nicht mehr akzeptiert.

AXMD


jaenicke - Fr 03.03.06 13:51

Wie wärs mit WordPad? Das unterstützt ja auch Unicode und sowas alles, da sollte das doch gehen.

Du solltest nur die Dateien vorher in .txt umbenennen, damit WordPad nicht auf die Idee kommt, da Formatierungen reinzuhauen.


BenBE - Fr 03.03.06 14:51

Mach doch in den Dateien ein binäres Search&Replace?


Gausi - Fr 03.03.06 16:52

pls sind eigentlich vom Aufbau her wie Ini-Dateien (zumindest hoff ich das, so hab ich das nämlich gerade in Nemp eingebaut...).
Das müsste dann in etwa so gehen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
ini := TMeminifile.Create(filename);
NumberOfEntries := ini.ReadInteger('playlist','NumberOfEntries',-1);
for i := 1 to NumberOfEntries do
begin
  oldFilename := ini.ReadString('playlist','File'+ IntToStr(i),'');
  // Abfrage:
  if (OldFilename[1] = 'C')
      AND (OldFilename[1] = ':')
      AND (OldFilename[1] = '\')
  then
  begin
    OldFilename[1] := 'D';
    ini.WriteString('playlist''File'+IntToStr(i),OldFilename);
  end;
  // else 
  //der Pfad ist relativ gespeichert - daher keine Änderung nötig
end;
ini.UpdateFile;
ini.Free;


Edit: Oh, seh grade, dass das gar keine Delphi-Frage war...aber den Rest des Programms drumrum schreiben dürfte schnell gehen, oder? :tongue:

Ansonsten: schick mir eine der pls mit "komischen Zeichen" bitte mal per Mail, damit bei der nächsten Veröffentlichung meines Players dieser Fehler dann schon ggf. ausgebügelt ist ;-)


BenBE - Fr 03.03.06 17:16

user profile iconGausi hat folgendes geschrieben:
pls sind eigentlich vom Aufbau her wie Ini-Dateien (zumindest hoff ich das, so hab ich das nämlich gerade in Nemp eingebaut...).
Das müsste dann in etwa so gehen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
ini := TMeminifile.Create(filename);
NumberOfEntries := ini.ReadInteger('playlist','NumberOfEntries',-1);
for i := 1 to NumberOfEntries do
begin
  oldFilename := ini.ReadString('playlist','File'+ IntToStr(i),'');
  // Abfrage:
  if (OldFilename[1] = 'C')
      AND (OldFilename[1] = ':')
      AND (OldFilename[1] = '\')
  then

  begin
    OldFilename[1] := 'D';
    ini.WriteString('playlist''File'+IntToStr(i),OldFilename);
  end;
  // else 
  //der Pfad ist relativ gespeichert - daher keine Änderung nötig
end;
ini.UpdateFile;
ini.Free;


Edit: Oh, seh grade, dass das gar keine Delphi-Frage war...aber den Rest des Programms drumrum schreiben dürfte schnell gehen, oder? :tongue:

Ansonsten: schick mir eine der pls mit "komischen Zeichen" bitte mal per Mail, damit bei der nächsten Veröffentlichung meines Players dieser Fehler dann schon ggf. ausgebügelt ist ;-)


Der Logik muss ich zustimmen *g*

Sollte wohl

Delphi-Quelltext
1:
2:
3:
4:
  if (OldFilename[1] = 'C')
      AND (OldFilename[2] = ':')
      AND (OldFilename[3] = '\')
  then


heßen *g*


Martin1966 - Fr 03.03.06 17:22

user profile iconBenBE hat folgendes geschrieben:
Sollte wohl

Delphi-Quelltext
1:
2:
3:
4:
  if (OldFilename[1] = 'C')
      AND (OldFilename[2] = ':')
      AND (OldFilename[3] = '\')
  then


heßen *g*

Das wäre sinnvoll ;-)

Vielleicht sollte man auch noch vorher prüfen ob der Dateiname aus mindestens drei Zeichen besteht um einen Fehler zu vermeiden. In diesem Fall wahrscheinlch er unwahrscheinlich aber trotzdem. :-D

Lg Martin


Gausi - Fr 03.03.06 17:30

Ach verdammt...blödes Copy&Paste :motz:

Das Abfangen des Fehlers bei zu kurzen Strings trau ich Andreas aber auch so zu ;-)


Martin1966 - Fr 03.03.06 17:38

user profile iconGausi hat folgendes geschrieben:
Das Abfangen des Fehlers bei zu kurzen Strings trau ich Andreas aber auch so zu ;-)


Außer er macht es wie du: Copy&Paste :mrgreen:


blackbirdXXX - Sa 04.03.06 18:28

Da lob ich mir mein sed:

Quelltext
1:
sed -e 's/^C:\\/D:\\/' myplaylist.pl > neu.pl                    


tommie-lie - Sa 04.03.06 18:36

user profile iconblackbirdXXX hat folgendes geschrieben:
Da lob ich mir mein sed:
Für alles andere gibt es Masterc^WCygWin [http://www.cygwin.com] ;-)