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?
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
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.