Beste mensen, ik heb het volgende probleem:
Ik heb voor mijn muziekcollectie een groot aantal afspeellijsten gemaakt met Winamp, zodat nummers in een bepaalde volgorde worden afgespeeld. Winamp slaat deze afspeellijsten als tekstbestanden (extensie .M3U)op, waarin hij op iedere regel naar een mp3-bestand verwijst, inclusief de padverwijzing. Als ik nu in een mp3-speler, die dergelijke afspeellijsten niet ondersteunt, toch de bestanden in dezelfde volgorde wil laten afspelen, kan ik dat alleen maar doen door de nummers te hernoemen, voorafgegaan door een volgnummer, zodat de bestandsnaam automatisch de volgorde van afspelen aangeeft. Ik gebruik hiervoor het door Winamp aangemaakte tekstbestand als basis voor een batchfile waarmee ik de files kan hernoemen. Echter daarvoor wil ik wel de padverwijzingen eerst uit het tekstbestand halen, want ik kopieer vooraf de bestanden en zet ze in een andere directory. Het verwijderen van die padverwijzingen lukt me tot nu toe niet in m’n code.
Het gaat er dus om dat op iedere tekstregel alle tekst aan het begin tot en met de laatste “\” verwijderd wordt.
Regels kunnen er dus uitzien als bijvoorbeeld:
D:\Temp\KanWeg\mp3#19\Duke-_So_In_Love_With_You_2000_Accapella.mp3
(of zie bijgesloten "afspeellijst.txt".
De "hernoemcode" die ik reeds geschreven heb is:
Of zie bijgesloten "HernoemMp3Bestand.txt".
Alvast dank voor jullie beantwoording,
Kees
Ik heb voor mijn muziekcollectie een groot aantal afspeellijsten gemaakt met Winamp, zodat nummers in een bepaalde volgorde worden afgespeeld. Winamp slaat deze afspeellijsten als tekstbestanden (extensie .M3U)op, waarin hij op iedere regel naar een mp3-bestand verwijst, inclusief de padverwijzing. Als ik nu in een mp3-speler, die dergelijke afspeellijsten niet ondersteunt, toch de bestanden in dezelfde volgorde wil laten afspelen, kan ik dat alleen maar doen door de nummers te hernoemen, voorafgegaan door een volgnummer, zodat de bestandsnaam automatisch de volgorde van afspelen aangeeft. Ik gebruik hiervoor het door Winamp aangemaakte tekstbestand als basis voor een batchfile waarmee ik de files kan hernoemen. Echter daarvoor wil ik wel de padverwijzingen eerst uit het tekstbestand halen, want ik kopieer vooraf de bestanden en zet ze in een andere directory. Het verwijderen van die padverwijzingen lukt me tot nu toe niet in m’n code.
Het gaat er dus om dat op iedere tekstregel alle tekst aan het begin tot en met de laatste “\” verwijderd wordt.
Regels kunnen er dus uitzien als bijvoorbeeld:
D:\Temp\KanWeg\mp3#19\Duke-_So_In_Love_With_You_2000_Accapella.mp3
(of zie bijgesloten "afspeellijst.txt".
De "hernoemcode" die ik reeds geschreven heb is:
Code:
Sub HernoemMp3Bestand()
Dim Mp3bestand As String ' Variabele die de huidige naam van het mp3-bestand gaat bevatten:
Dim VoorloopNul As String ' Variabele die voorloopnullen aan de nieuwe naam van het mp3-bestand gaat toevoegen:
Dim Teller As Integer ' Teller die steeds met 1 wordt opgehoogd om de bestanden oplopend te nummeren in dezelfde volgorde als waarin ze in het tekstbestand staan:
freeFileNumber = FreeFile ' Zorg dat een filepositie gereserveerd wordt voor het aan te maken batchbestand
Teller = 1 ' Zet de Teller alvast op 1
Open "hernoemen.bat" For Output As freeFileNumber ' Maak bestand "hernoemen.bat" aan om straks in batch alle mp3-bestanden in één keer te renamen:
Range("A1").Select ' Ga naar de eerste cel (A1) in het werkblad
Do
If Teller < 10 Then ' bestandsnamen tot en met "9-..." twee voorloopnullen geven:
VoorloopNul = "00"
ElseIf Teller < 100 Then ' bestandsnamen tot en met "99-..." één voorloopnul geven:
VoorloopNul = "0"
Else ' bestandsnamen vanaf "100-..." hebben geen voorloopnul meer nodig:
VoorloopNul = ""
End If
Mp3bestand = ActiveCell.Value ' Haal de huidige naam van het mp3-bestand op uit de active cel
Print #freeFileNumber, "ren """ & Mp3bestand & """ " & """" & VoorloopNul & Teller & "-" & Mp3bestand & """" ' Zet de rename-opdracht voor het mp3-bestand in het batchfile
Teller = Teller + 1 ' Hoog de teller met 1 op
ActiveCell.Offset(1, 0).Select ' Ga naar de volgende cel onder de actieve cel
Loop Until IsEmpty(ActiveCell) ' Stop met vullen van het batchbestand als er een lege regel aangetroffen wordt
Close freeFileNumber ' Sluit het batchbestand
Shell ("cmd.exe /k hernoemen.bat") ' Start het batchbestand
End Sub
Of zie bijgesloten "HernoemMp3Bestand.txt".
Alvast dank voor jullie beantwoording,
Kees