/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Hjælp!! MP3-registrering med Listview...
Fra : Martin Wiboe


Dato : 01-02-03 14:11

Hej gruppe!

Jeg håber virkelig der er nogen der kan hjælpe mig med det her, for jeg kan
ikke se hvad der er galt.... Denne rutine skal registrere alle mp3er fra en
række biblioteker i en listview (finde deres titel med MediaPlayer-object,
kunstner og størrelse). Men dataene bliver forkert placeret, mht. kunstner
og nogle gange virker størrelse ikke....
Objekter: LocalMP3s er en listview med 3 kolonner: Title, Artist og Size.
MP3Loader er en filelist med pattern = "*.mp3". Mediaplayer er et Windows
Media Player objekt (den gamle!)... Plz svar!
Formatet for Sources.Dat filen der refereres til i koden er
filsti
filsti
etc...

Venlig hilsen

Marin Wiboe

Følgende sub indlæser som sagt filerne:

Private Sub LoadMp3s()
'On Error Resume Next
Dim FileNumber As Integer, CurrMP3Path As String, CurrFileNum As Integer,
TotalFileNum As Integer
Dim Artist As String, Title As String, Size As Integer
Close
MediaPlayer.Mute = True
FileNumber = FreeFile
Open App.Path & "\Sources.dat" For Input As #FileNumber
Do Until EOF(FileNumber)
Line Input #FileNumber, CurrMP3Path
MP3Loader.Path = CurrMP3Path
For CurrFileNum = 0 To MP3Loader.ListCount - 1
MediaPlayer.FileName = MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum)
Title = MediaPlayer.GetMediaInfoString(mpClipTitle)
Artist = MediaPlayer.GetMediaInfoString(mpClipAuthor)
Size = (FileLen(MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum)) /
1024) / 1024
If MediaPlayer.GetMediaInfoString(mpClipTitle) <> "" Then
LocalMP3s.ListItems.Add Index:=TotalFileNum + CurrFileNum + 1,
Key:=MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum), Text:=Title ',
SmallIcon:=1
Else
LocalMP3s.ListItems.Add Index:=TotalFileNum + CurrFileNum + 1,
Key:=MP3Loader.Path & "\" & MP3Loader.List(CurrFileNum),
Text:=Mid(MP3Loader.List(CurrFileNum), 1, Len(MP3Loader.List(CurrFileNum)) -
4) ', SmallIcon:=1
End If
LocalMP3s.ListItems(TotalFileNum + CurrFileNum + 1).SubItems(1) = Artist
LocalMP3s.ListItems(TotalFileNum + CurrFileNum + 1).SubItems(2) = Size & "
MB"

LocalMP3s.Refresh

Next
Loop
MediaPlayer.Stop
MediaPlayer.Mute = False
Close
For CurrFileNum = 1 To LocalMP3s.ListItems.Count
If LocalMP3s.ListItems(CurrFileNum).SubItems(1) = "" Then
LocalMP3s.ListItems(CurrFileNum).SubItems(1) = "Unknown"
If LocalMP3s.ListItems(CurrFileNum).Text = "" Then
LocalMP3s.ListItems(CurrFileNum).Text = LocalMP3s.ListItems(CurrFileNum).Key
Next
End Sub



 
 
preben nielsen (01-02-2003)
Kommentar
Fra : preben nielsen


Dato : 01-02-03 15:54


"Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
meddelelse news:b1gh4t$fkl$1@sunsite.dk...
> Hej gruppe!
>
> Marin Wiboe
>
> Følgende sub indlæser som sagt filerne:
>
> Private Sub LoadMp3s()
> 'On Error Resume Next
> Dim FileNumber As Integer, CurrMP3Path As String, CurrFileNum As
Integer,
> TotalFileNum As Integer
> Dim Artist As String, Title As String, Size As Integer

Size er da slet ikke stor nok (i VB6) ! Brug Long.


--
/\ preben nielsen
\/\ prel@post.tele.dk




Martin Wiboe (01-02-2003)
Kommentar
Fra : Martin Wiboe


Dato : 01-02-03 18:55

Du har ret! Ændrer det lige, tak! Mht. koden har jeg fundet fejlen: Listview
er sat til Sorted, så når man refererer til de forskellige Listitems pr.
Index, er det klart det går galt.... Undskyld at du har måttet læse hele min
smøre til ingen nytte

Mange venlige hilsner,

Martin Wiboe
"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3e3bdf87$0$124$edfadb0f@dread16.news.tele.dk...
>
> "Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
> meddelelse news:b1gh4t$fkl$1@sunsite.dk...
> > Hej gruppe!
> >
> > Marin Wiboe
> >
> > Følgende sub indlæser som sagt filerne:
> >
> > Private Sub LoadMp3s()
> > 'On Error Resume Next
> > Dim FileNumber As Integer, CurrMP3Path As String, CurrFileNum As
> Integer,
> > TotalFileNum As Integer
> > Dim Artist As String, Title As String, Size As Integer
>
> Size er da slet ikke stor nok (i VB6) ! Brug Long.
>
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>
>



preben nielsen (01-02-2003)
Kommentar
Fra : preben nielsen


Dato : 01-02-03 20:20


"Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
meddelelse news:b1h1p1$26s$1@sunsite.dk...
> Du har ret! Ændrer det lige, tak! Mht. koden har jeg fundet
fejlen: Listview
> er sat til Sorted, så når man refererer til de forskellige
Listitems pr.
> Index, er det klart det går galt....

Jeg undrede mig faktisk også over din måde at håndtere dette på
Hvorfor holder du ikke bare fast på dit Item når du har
..Add'et det ?

Sådan her:

Dim li As ListItem

Set li = LocalMP3s.ListItems.Add(Text:="Tekst 1")
li.SubItems(1) = "A"
li.SubItems(2) = "B"

Set li = LocalMP3s.ListItems.Add(Text:="Tekst 2")
li.SubItems(1) = "A"
li.SubItems(2) = "B"

--
/\ preben nielsen
\/\ prel@post.tele.dk




Martin Wiboe (02-02-2003)
Kommentar
Fra : Martin Wiboe


Dato : 02-02-03 09:50

Det er selvfølgelig en mere genial løsning end min, men er ikke så fortrolig
med Set. Hvis jeg havde haft løsningen da jeg startede, var det dog den jeg
havde valgt. Men if it isn't broke, don't fix it, så jeg lader det blive ved
min nuværende løsning. Men du har forøget min horisont med VB, din løsning
er både bedre og mere objektorienteret.
Takker!

Med venlig hilsen,

Martin Wiboe
"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3e3c1df3$0$137$edfadb0f@dread16.news.tele.dk...
>
> "Martin Wiboe" <martin_wiboe[removethis]@hotmail.com> skrev i en
> meddelelse news:b1h1p1$26s$1@sunsite.dk...
> > Du har ret! Ændrer det lige, tak! Mht. koden har jeg fundet
> fejlen: Listview
> > er sat til Sorted, så når man refererer til de forskellige
> Listitems pr.
> > Index, er det klart det går galt....
>
> Jeg undrede mig faktisk også over din måde at håndtere dette på
> Hvorfor holder du ikke bare fast på dit Item når du har
> .Add'et det ?
>
> Sådan her:
>
> Dim li As ListItem
>
> Set li = LocalMP3s.ListItems.Add(Text:="Tekst 1")
> li.SubItems(1) = "A"
> li.SubItems(2) = "B"
>
> Set li = LocalMP3s.ListItems.Add(Text:="Tekst 2")
> li.SubItems(1) = "A"
> li.SubItems(2) = "B"
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste