Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Hakemiston ja tiedostojen luku

Wizard [13.12.2003 15:34:15]

#

Eli tarkoituksena olisi lukea formille valitun hakemiston kaikkien tiedostojen nimet.

Väännän rautalangasta:

Valitsen jonkin tietyn hakemiston ohjelmassa jonka jälkeen ohjelma lukee hakemistossa olevien tiedostojen nimet formin tiettyyn kenttään, olkoon nyt vaikka tekstikenttä. Lisäksi olisi kiva jos tiedoston koon pystyisi lukemaan vaikka toiseen tekstikenttään tai vastaavaa. En löytänyt koodiesimerkkiä edes englanninkielisistä foorumeista tai en sitten en vain osannut etsiä oikeilla hakusanoilla...

Ja sitten jos halutaan viedä tätä hieman pidemmälle, niin miten MP3 tiedostosta pystyy lukemaan siihen tallennettuja tietoja kuten artisti, bitrate jne jne.


Kenellä on tietoa ja taitoa kertoa esimerkki?

sooda [13.12.2003 15:55:42]

#

Noh, tota ekaa en oikeen kelannut... mutta toi mp3tieto juttu kiinnostaa muakin.(se on muuten id3 tag, keksin ton winampista) noh, kuukkelitin 10sek ja löytyi http://www.freevbcode.com/ShowCode.Asp?ID=1118

Option Explicit

Public Type ID3Tag
    Header As String * 3
    SongTitle As String * 30
    Artist  As String * 30
    Album  As String * 30
    Year  As String * 4
    Comment As String * 30
    Genre  As Byte
End Type

Public Function GetID3Tag(FileName As String, Tag As ID3Tag) _
   As Boolean

'******************************
'Instructions:
'Pass an variable declared as type ID3Tag to Tag Parameter
'and read its member data after the function returns (assuming
'the function returns true)
'****************************

On Error GoTo GetID3TagError

Dim TempTag As ID3Tag
Dim FileNum As Long

    If Dir(FileName) = "" Then
        GetID3Tag = False
        Exit Function
    End If

    FileNum = FreeFile

    Open FileName For Binary As FileNum
    Get FileNum, LOF(1) - 127, TempTag
    Close FileNum

    If TempTag.Header <> "TAG" Then
        GetID3Tag = False
    Else
        Tag = TempTag
        GetID3Tag = True
    End If

    Exit Function

GetID3TagError:
    Close FileNum
    GetID3Tag = False
End Function

tnb [13.12.2003 17:15:08]

#

Homman voi ratkaista rekursio ohjelmoinnilla, tässä ohjelman proto:

sub etsi(myPath)
Eka hakemisto sadaan: MyName = Dir(MyPath, vbDirectory)
Seuraava hakemisto: MyName = Dir
kun tiedistot loppuu niin Dir antaa ""
ohita "." ja ".." hakemistonimet
tarkistus onko varmasti hakemisto: GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory

lue loopilla kaikki hakemistot taulukkoon hakemistonnimi()

käy taulukko läpi loopilla
loopin sisällä kutsu etsi(hakemistonnimi(i)) eli kutsutaan itseä eli mennään syvemmälle hakemistorakenteessa

kun alihakemistoja ei enää ole niin luetaan tiedostonimet
Hakemiston eka tiedosto saadaan: MyName = Dir(MyPath)
seuraava tiedosto: MyName = Dir
kun tiedistot loppuu niin Dir antaa ""

Do While MyName <> ""
myName=Dir
 print MyName
Loop
'palataan ylemmlle tasolle hakemistossa
end sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta