EasyWPLSync
Verfasst: 16.09.2007 20:45
Hi Leute,
ich habe mir mittlerweile einige Musik-Wiedergabelisten zusammengestellt, die ich je nach Laune aufrufe.
Eben fiel mir allerdings auf, dass ich diese nur sehr mühsam auf den MP3-Player kopieren kann, also hab ich schnell nen kleinen Code geschrieben, der die Lieder aus der Liste ausliest und in ein anderes Verzeichnis (MP3-Player) kopiert.
Jetzt das Beste: Das ganz ist OpenSource
Vielleicht kommt ja noch der ein oder andere auf eine Idee und kann sie posten order sogar ergänzen (werd den Code hier soweit es geht frisch halten).
Schiele jetzt vor allem in die Ecke der Winamp-, iTunes-, ect. Benutzer.
Gruß
Scarabol
ich habe mir mittlerweile einige Musik-Wiedergabelisten zusammengestellt, die ich je nach Laune aufrufe.
Eben fiel mir allerdings auf, dass ich diese nur sehr mühsam auf den MP3-Player kopieren kann, also hab ich schnell nen kleinen Code geschrieben, der die Lieder aus der Liste ausliest und in ein anderes Verzeichnis (MP3-Player) kopiert.
Jetzt das Beste: Das ganz ist OpenSource

Vielleicht kommt ja noch der ein oder andere auf eine Idee und kann sie posten order sogar ergänzen (werd den Code hier soweit es geht frisch halten).
Schiele jetzt vor allem in die Ecke der Winamp-, iTunes-, ect. Benutzer.
Code: Alles auswählen
File$ = OpenFileRequester("Windows Media-Wiedergabeliste auswählen:", "", "Wiedergabeliste (*.wpl)|*.wpl|Alle Dateien (*.*)|*.*", 0)
If File$ = ""
End
EndIf
If ReadFile(1, File$) = 0
MessageRequester("Error", "Die Datei"+Chr(10)+File$+Chr(10)+"konnte nicht geladen werden!", #MB_ICONERROR)
End
EndIf
TargetDir$ = PathRequester("Ziel Verzeichnis wählen:", "")
If TargetDir$ = ""
End
EndIf
If ExamineDirectory(0, TargetDir$, "*.*") = 0
MessageRequester("Error", "Das Zielverzeichnis"+Chr(10)+TargetDir$+Chr(10)+"konnte nicht verwendet werden!", #MB_ICONERROR)
End
EndIf
NewList Musik.s()
While Eof(1) = 0
String$ + Trim(ReadString(1, #PB_UTF8))
Wend
While StringField(String$, n, ">") <> "<seq"
n+1
Wend
c = n+1
Repeat
temp.s = StringField(String$, c, ">")
If temp = "</seq"
Break
EndIf
AddElement(Musik())
Musik() = GetPathPart(File$)+StringField(temp, 2, Chr(34))
c+1
Until c > 50000
If c > 50000
If MessageRequester("Error", "Das Limit von 50.000 Musiktiteln wurde erreicht."+Chr(10)+Chr(10)+"Möchten Sie fortfahren?", #MB_ICONERROR|#PB_MessageRequester_YesNo) = #PB_MessageRequester_No
End
EndIf
EndIf
While NextDirectoryEntry(0)
ForEach Musik()
If DirectoryEntryName(0) = GetFilePart(Musik())
DeleteElement(Musik())
Break
ElseIf DirectoryEntryType(0) = #PB_DirectoryEntry_File And MD5FileFingerprint(TargetDir$+DirectoryEntryName(0)) = MD5FileFingerprint(Musik())
If MessageRequester("Info", "Die Datei '"+GetFilePart(Musik())+"' existiert bereits unter dem Namen '"+DirectoryEntryName(0)+"'"+Chr(10)+Chr(10)+"Möchten Sie die bereits vorhandene Datei umbenennen?", #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
RenameFile(TargetDir$+DirectoryEntryName(0), TargetDir$+GetFilePart(Musik()))
EndIf
Break
EndIf
Next
Wend
Error = 0
ForEach Musik()
If CopyFile(Musik(), TargetDir$+GetFilePart(Musik())) = 0
If MessageRequester("Error", "Kopieren der Datei '"+GetFilePart(Musik())+"' fehlgeschlagen!"+Chr(10)+Chr(10)+"Quelldatei:"+Chr(10)+Musik()+Chr(10)+"Zieldatei:"+Chr(10)+TargetDir$+GetFilePart(Musik())+Chr(10)+Chr(10)+"Möchten Sie die Synchronisation fortsetzen?", #MB_ICONERROR|#PB_MessageRequester_YesNo) = #PB_MessageRequester_No
End
EndIf
Error+1
EndIf
Next
If Error
MessageRequester("Hinweis", "Synchronisation nur teilweise erfolgreich!"+Chr(10)+Chr(10)+Str(Error)+" von "+Str(CountList(Musik()))+" Dateien übertragen!", #MB_ICONWARNING)
Else
MessageRequester("Hinweis", "Die Synchronisation war erfolgreich!", #MB_ICONINFORMATION)
EndIf
Scarabol