Avatar billede telep Nybegynder
08. oktober 2002 - 13:21 Der er 6 kommentarer og
1 løsning

Navne på mapper

Hi,

Jeg er igang med at lave en database over min musik albums som jeg har liggende på min pc.

Jeg har delt albums'ne op således at di ligger som følger:

c:\musik\album\kunstnernavn\cdtitel\sang.mp3

f.eks. c:\musik\album\Travis\The Invisible Band\Sing.mp3

Og så ligger alle sangene på albummet der selvfølgelig.

Jeg lave en løkke der løber samtlige mapper under c:\musik\album igennem og registrer Kunstnernavn, albumtitel og sangtitel!

Jeg har forsøgt mig lidt med en DirListBox, men jeg kan ikke åbne en mappe med kode, dir1.open elller dir1.explore findes åbenbart ikke...

Kom med nogle tanker eller ideer...
Avatar billede sorenstrom Nybegynder
08. oktober 2002 - 14:50 #1
Hvis din mening er, at afspille dine mp3-filer, så kan du f.eks åbne filen med:

Shell "c:\programmer\Windows MediaPlayer\wmplayer.exe c:\musik\musik.mp3"

DU skal så selvfølgelig indsætte den korrekte sti til mp3-filen
Avatar billede telep Nybegynder
08. oktober 2002 - 15:22 #2
Dette har intet at gøre med afspilning af musikfiler.

Jeg skal bruge kode til Artisten navn samt album titel ud af en dir1.path...
Avatar billede sion Nybegynder
08. oktober 2002 - 16:28 #3
hej telep,
du kan evt. bruge følgende kode:

Private Sub Command1_Click()
    MP3s = GetAllFiles("E:\SimpleMP3s", "*.mp3", True).Count
End Sub

Function GetAllFiles(ByVal Path As String, ByVal filespec As String, Optional RecurseDirs As Boolean) As Collection
    Dim spec As Variant
    Dim file As Variant
    Dim subdir As Variant
    Dim subdirs As New Collection
    Dim specs() As String
   
    ' initialize the result
    Set GetAllFiles = New Collection
   
    ' ensure that path has a trailing backslash
    If Right$(Path, 1) <> "\" Then Path = Path & "\"
   
    ' get the list of provided file specifications
    specs() = Split(filespec, ";")
   
    ' this is necessary to ignore duplicates in result
    ' caused by overlapping file specifications
    On Error Resume Next
               
    ' at each iteration search for a different filespec
    For Each spec In specs
        ' start the search
        file = Dir$(Path & spec)
        Do While Len(file)
            ' we've found a new file
            If HeleStien = True Then
                file = Path & file
            Else
                file = file
            End If
            GetAllFiles.Add file, file
            List1.AddItem GetAllFiles.Item(file) 'LavDirTræ Path, GetAllFiles.Item(file), True
            ' get ready for the next iteration
            file = Dir$
        Loop
    Next
   
    ' first, build the list of subdirectories to be searched
    If RecurseDirs Then
        ' get the collection of subdirectories
        ' start the search
        file = Dir$(Path & "*.*", vbDirectory)
        Do While Len(file)
            ' we've found a new directory
            If file = "." Or file = ".." Then
                ' exclude the "." and ".." entries
            ElseIf (GetAttr(Path & file) And vbDirectory) = 0 Then
                ' ignore regular files
            Else
                ' this is a directory, include the path in the collection
                file = Path & file
                subdirs.Add file, file
            End If
            ' get next directory
            file = Dir$
        Loop
        ' parse each subdirectory
        For Each subdir In subdirs
            ' use GetAllFiles recursively
            For Each file In GetAllFiles(subdir, filespec, True)
                GetAllFiles.Add file, file
               
            Next
        Next
    End If
   
End Function

-Sion
Avatar billede sion Nybegynder
08. oktober 2002 - 16:29 #4
Du skal self. lige ændre stien for dine mp3'ere :D
Avatar billede telep Nybegynder
08. oktober 2002 - 16:59 #5
Ok, men hvordan får så Artistnavn til at stå i een listbox og Albumnavn til at stå i en anden og Sangnavn til at stå i en tredje?
Avatar billede sion Nybegynder
08. oktober 2002 - 17:46 #6
Opret 3 list'bokse; listKunstner, listAlbum og listNummer
Indsæt derefter nedenstående sub:

Private Sub OpstilMp3er(Filsti As String)
    Dim MP3array() As String
    MP3array() = Split(Filsti, "\")
    listKunstner.AddItem MP3array(UBound(MP3array) - 2)
    listAlbum.AddItem MP3array(UBound(MP3array) - 1)
    listNummer.AddItem MP3array(UBound(MP3array))
End Sub

Husk at erstatte linjen "List1.AddItem GetAllFiles.Item(file)" med "OpstilMp3er (Path & file)" (cirka midt i koden)
Skriv hvis du er i tvivl om noget...
-Sion
Avatar billede telep Nybegynder
09. oktober 2002 - 12:16 #7
Det er fandme porno nok!

Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB