Newsgroup: it.comp.lang.visual-basic
Titolo: LISTVIEW.. che casino...

Allora allora.. come va? a me male...
Sto cercando (si cercando...) di creare un programmino per sapere dove sono
i miei bei files mp3...
mi spiego:
ho tanti mp3.. di solito li metto su cd. alcuni gli lascio su hd. il
problema č che quando faccio un cd nuovo per mp3
(li divido in Mp3 volume 1,2,3,4, ecc) a volte copio mp3 giŕ presenti su
altri volume precedenti...
Pensavo di usare normali Listbox, poi la grandiosa scoperta delle
LISTVIEW... possibilitŕ di mettere icone, colonne e varie cazzate...
insomma: che bello!!! (na roba..)
Allora. Il primo problema č: creare le colonne. Per fortuna č stato facile
crearle in fase di progettazione. grazie alla MSDN...
Adesso. Come faccio ad aggiungere gli elementi?? Gli elementi vengono letti
da un file di testo (lo apro come stream) nel quale
le canzoni sono disposte nel seguente ordine
NOMECANZONE1@NOMEARTISTA1@DURATACANZONE1@DIMENSIONEFILE1@NUMERO_DEL_CD_IN_CU
I_E_PRESENTE
NOMECANZONE2@NOMEARTISTA2@DURATACANZONE2@DIMENSIONEFILE2@NUMERO_DEL_CD_IN_CU
I_E_PRESENTE
NOMECANZONE3@NOMEARTISTA3@DURATACANZONE3@DIMENSIONEFILE3@NUMERO_DEL_CD_IN_CU
I_E_PRESENTE
NOMECANZONE4@NOMEARTISTA4@DURATACANZONE4@DIMENSIONEFILE4@NUMERO_DEL_CD_IN_CU
I_E_PRESENTE
allora... le mmie domande sono le segnuenti:
Come faccio a dire che nella prima riga e prima colonna venga visualizzato
il nome della prima canzone, ecc. ecc.???
inoltre vorrei che ci fosse una colonna che mettesse una icona se il file č
presente piů volte nella lista (controllando nome, autore, dimensione ecc.)
la lista delle canzoni nel formato di testo la creo io con Exel... ho anche
pensato di crearla io con il componente mediaplayer che
permette di leggere i TAG dei file MP3... ma a questo penserň piů tardi...
Il problema + grande č come mettere gli oggetti nella listview...
con la listbox basta mettere ADDITEM, ma qui??? ho letto qualcosa ma la
mitica MSDN quando serve, sa che non deve mettere esempi!!! :)
Come far capire che le "parti" della stringa sono divise da @?? non lo so..
ma questo ci posso pensare.. (sono riuscito a farlo in pascal... quindi qui
prima o poi ci riesco. se mi aiutate faccio anchee prima!!!)
Ringrazio anticipatamente tutti quelli che mi aiuteranno!!!
ps: se finisco con il vs aiuto vi metto nei Credits e vi dico dove scaricare
il programma UNDER CONTROL... (cosě ho deciso di chiamarlo.. che ve ne
pare?)
Grazie
Augusto
ESEMPIO DEL FORM
****************************************************************************
******************
*
____________________________________________________________________________
_______________*
*  File   |    ?
*
*
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ*
*  Listview1
*
*
____________________________________________________________________________
_______________*
*  Numero canzone    |    Artista    |    Canzone    |    Durata     |
Dimensione    |    Presenza nel Cd n°     |     Ripetuto          *
*
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ*
*  1                         pippo            zippo            3:52
3.2 Mb             1-3-7-14 ecc                    ICONA SI / NO*
*
(o simile)
*
*
*
*
                                                 *
*
[1 3 7 14 rappresentano                             *
*
il numero del cd in cui                               *
*
presente il file ]                                         *
*
*
*
*
****************************************************************************
*******************
Grazie ancora...
           ***************
       Stavi cercando Qualcosa?
A G I   _   H O M E   _   P A G E
 
http://web.tiscalinet.it/bal_home
           ***************

 254 Then Genere = 12
        
RilevaTAG = CInt(Genere)
    End If
    
Close FileNum


 


End Function


 


==============================


 


Form1:  ( inserire questo codice )


 


Public Sub CaricaPlaylist(Optional FilePlayList As 
String)
    Dim nFile As Integer
    Dim 
LineaDiTesto As String
    Dim L_PosizioneTesto As 
Long
    Dim LunghezzaTesto As Long
    Dim 
MP3NomeFile As String
    Dim TipoIcona As 
Integer
    Dim ListaMp3 As ListItem
    

    nFile = FreeFile
    If FilePlayList = 
"" Then FilePlayList = App.Path & "\PlayList.dat"
    If 
Dir(FilePlayList) = "" Then
        MsgBox 
"Errore Caricando la playList '" & FilePlayList & ".' Verificarne 
l'esistenza !"
        Exit 
Sub
    End If


 


    Me.MousePointer = 11
    Open 
FilePlayList For Input As #nFile
    On Error GoTo 
Errore_L
    Do Until 
EOF(1)
        Line Input #nFile, 
LineaDiTesto$
        If 
UCase(Right(LineaDiTesto$, 3)) = "WAV" Then ' QUESTO SE CARICHI FILE NON MP3 
(bisognerà associare un icona diversa per 
differenziare)
            
TipoIcona = 1 (ICONA CHE IDENTIFICA UN 
WAVE)
        
Else
            
TipoIcona = 2 (ICONA CHE IDENTIFICA UN 
MP3)
        End 
If
        L_PosizioneTesto = 
InStrRev(LineaDiTesto$, "\", , 
vbTextCompare)
        LunghezzaTesto = 
Len(LineaDiTesto$)
        MP3NomeFile = 
Trim(Right(LineaDiTesto$, LunghezzaTesto - 
L_PosizioneTesto))
    Set ListaMp3 = PlayList.ListItems.Add(, 
, Left(MP3NomeFile, Len(MP3NomeFile) - 4), , 
TipoIcona)
        ListaMp3.SubItems(1) = 
RilevaTAG(LineaDiTesto$, 
"Artista")
        ListaMp3.SubItems(2) = 
RilevaTAG(LineaDiTesto$, "Titolo")
        
ListaMp3.SubItems(3) = RilevaTAG(LineaDiTesto$, 
"Album")
        ListaMp3.SubItems(4) = 
UCase(Right(LineaDiTesto$, 3))
        
ListaMp3.Tag = Trim(LineaDiTesto$)
    
Loop
Termina:
        Me.MousePointer = 
0
        Close 
#nFile
        GoTo 
n°Mp3:
Errore_L:
    MsgBox "Il file specificato risulta 
troppo lungo.", , "Errori"
    Resume Termina: 

n°Mp3:
    Label.ZOrder 1
    
Label.Caption = PlayList.ListItems.Count & " MP3"
End Sub


 


=====================================================00


 


Private Sub CmdCaricaPlaylist_Click()
    
PlayList.GridLines = True
    PlayList.HideColumnHeaders = 
False


    Call CaricaPlaylist(App.Path & 
"\PlayList.dat")
End Sub


 


Private Sub PlayList_ColumnClick(ByVal ColumnHeader As 
MSComctlLib.ColumnHeader)


 


 PlayList.SortKey = ColumnHeader.Index - 1
    
PlayList.Sorted = True
    If PlayList.SortOrder = 
lvwAscending Then
        
PlayList.SortOrder = lvwDescending
    
Else
        PlayList.SortOrder = 
lvwAscending
    End If
    PlayList.Sorted 
= False


End Sub


Fine. 


Fammi sapere se ti sono stato di Aiuto, e per ulteriori chiarimenti.


Ciao.


 



 ha scritto nel messaggio
news:000601c0db51$d5996e10$b3037a3e@virtual...


Per un programmino già fatto che analizza il contenuto di un CD in cerca di MP3 e
memorizza le informazioni di ogni MP3 trovato in un Database Access (96Kb):
http://www.geocities.com/Tokyo/Market/4224/projects/DaniTag.zip
Preview qui:
http://www.geocities.com/Tokyo/Market/4224/projects/DaniTag.gif
Per le listview:
a) premi F1 dopo aver disegnato in un form una ListView, e cerchi se c'e' un metodo
AddQualcosa
b) Guarda il codice qui sotto
Private Sub LView_Init()
  Dim clmX As ColumnHeader
  ListView1.Sorted = False
  ListView1.View = lvwReport
  ListView1.MultiSelect = False
  ListView1.FullRowSelect = True
  ListView1.LabelEdit = lvwManual
  ListView1.HideSelection = False
  Set clmX = ListView1.ColumnHeaders.Add(, , "Nome")
  clmX.Width = 600
  Set clmX = ListView1.ColumnHeaders.Add(, , "codice")
  clmX.Width = 0
End Sub
Private Sub LView_Add(nome As String, codice As String)
  Dim itmX As ListItem
  Set itmX = ListView1.ListItems.Add()
  itmX.Text = nome
  itmX.SubItems(1) = codice
  Set ListView1.SelectedItem = itmX
End Sub
Private Sub LView_RemoveCurrent()
  If ListView1.ListItems.Count > 0 Then
    ListView1.ListItems.Remove ListView1.SelectedItem.Index
    If ListView1.ListItems.Count > 0 Then Set ListView1.SelectedItem =
ListView1.ListItems(ListView1.ListItems.Count)
  End If
End Sub
Private Sub LView_RemoveAll()
  If ListView1.ListItems.Count > 0 Then
    ListView1.ListItems.Clear
  End If
End Sub
Private Function LView_IsEmpty() As Boolean
  LView_IsEmpty = (ListView1.ListItems.Count = 0)
End Function

Set Time = guardasbegliaeregolaorologio

facevi prima a mandargli il sorgente via mail...

> Ragazzi, NON postate in HTML...
e perchč mai??? che problema c'č? forse nn usi Outlook???

 e perchč mai??? che problema c'č? forse nn usi Outlook???
a parte che usare oe o altri reader html-compatibili non e' ancora
obbligatorio per legge, prova con oe a salvare come testo (nws) il post
di utente win 2k... il peso del post triplica. se postiamo tutti in
html, scaricare il ng diventa equivalente a scaricare un s.p.
ciao, a

 ha scritto nel messaggio
news:9dri7t$jiujb$1...@ID-51318.news.dfncis.de...


 Ciao
utente win2k e' bravissimo, me ne ero gia' accorto.
infatti a lui non ho detto niente :))
ciao, a.