Newsgroup: it.comp.appl.access
Titolo: tag mp3

salve a tutti
  vorrei un aiuto per recuperare le caratteristichedi di alcuni file mp3 
tipo artista album titolo ecc...i dati li ho reuperati solo che le 
stringhe contengono lotre al nome anche dei caratteri strani e non sono 
spazi vuoti come posso recuperare le stringhe pulite per leggere i dati 
ho usato :
	Get #1, , .sTitle
     Get #1, , .sArtist
     Get #1, , .sAlbum
     Get #1, , .sYear
     Get #1, , .sComment
     Get #1, , .bNull
     Get #1, , .bTrack
     Get #1, , .bGenre
grazie

 ha scritto nel messaggio 
news:CpFOj.16765$o06....@tornado.fastwebnet.it...

Dovresti dire qualcosa in più.
Per esempio il codice che hai usato è la stringa che hai ricavato.
In genere un replace dovrebbe funzionare.
Ciao, Carlo 

 ha scritto nel messaggio 
news:CpFOj.16765$o06....@tornado.fastwebnet.it...

...in genere si tratta di caratteri "nulli" chr(0).
In questo caso basterebbe per esempio:
sArtist = Replace(RTrim(.sArtist), Chr(0), "")
Posta il codice che potrebbe servire ad altri.
Ciao, Carlo 

Carlo Costarella ha scritto:

forse hai ragione non ho provato, ma proverï¿œ per ora ho eseguitola 
riscrittura tramite la mid()
il codice ï¿œ il seguente:
Option Compare Database
Option Explicit
Public dTag As String
Public dTitolo As String
Public dArtista As String
Public dAlbum As String
Public dAnno As String
Public dCommento As String
Public dTraccia As String
Public dGenere As String
Public Sub fctLeggiTag(Filename As String)
Dim sTag As String, aa As Long, bb As Long
Dim ID3v1Tags As ID3v1Tag
Open Filename For Binary As #1
   With ID3v1Tags
     Get #1, LOF(1) - 127, .sTag
     If Not .sTag = "TAG" Then
       MsgBox "Non ci sono TAG per il file " & Filename
       Close #1
       Exit Sub
     End If
     Get #1, , .sTitle
     Get #1, , .sArtist
     Get #1, , .sAlbum
     Get #1, , .sYear
     Get #1, , .sComment
     Get #1, , .bNull
     Get #1, , .bTrack
     Get #1, , .bGenre
     Close #1
     dTitolo = ""
     dArtista = ""
     dAlbum = ""
     dAnno = ""
     dCommento = ""
     dGenere = ""
     dTraccia = ""
     dTag = .sTag
     For aa = 1 To Len(.sArtist)
         If Mid(.sArtist, aa, 1) > Chr(31) Then dArtista = dArtista & 
Mid(.sArtist, aa, 1)
     Next
     For aa = 1 To Len(.sTitle)
         If Mid(.sTitle, aa, 1) > Chr(31) Then dTitolo = dTitolo & 
Mid(.sTitle, aa, 1)
     Next
     For aa = 1 To Len(.sAlbum)
         If Mid(.sAlbum, aa, 1) > Chr(31) Then dAlbum = dAlbum & 
Mid(.sAlbum, aa, 1)
     Next
     For aa = 1 To Len(.sYear)
         If Mid(.sYear, aa, 1) > Chr(31) Then dAnno = dAnno & 
Mid(.sYear, aa, 1)
     Next
     For aa = 1 To Len(.bTrack)
         If Mid(.bTrack, aa, 1) > Chr(31) Then dTraccia = dTraccia & 
Mid(.bTrack, aa, 1)
     Next
   '  dTitolo = RTrim(.sTitle)
    ' dArtista = RTrim(.sArtist)
   '  dAlbum = RTrim(.sAlbum)
    ' dAnno = RTrim(.sYear)
     'dCommento = RTrim(.sComment)
     'dTraccia = RTrim(.bTrack)
    ' dGenere = RTrim(.bGenre)
   End With
End Sub

 ha scritto nel messaggio 
news:BDNOj.17480$o06....@tornado.fastwebnet.it...
cut
Al tuo codice mancano i Type...ID3v1Tag.
Ciao, Carlo 

Carlo Costarella ha scritto:

si scusa ho copiato male mancavno questi:
Private Type ID3v1Tag
     sTag As String * 3
     sTitle As String * 30
     sArtist As String * 30
     sAlbum As String * 30
     sYear As String * 4
     sComment As String * 28
     bNull As Byte
     bTrack As Byte
     bGenre As Byte
End Type
cmq stò mettendo a frutto varie routine di lettura file, creazione 
directory spostamento file e player mp3. Ho ancora qualche problema 
nella lettura dei file, devo aggiungere dei controlli, però posso dirti
che il tutto mi ha dato modo di mettere a posto una certo numero di file 
mp3, naturalmente con tag ed avere un database dal quale posso ascoltare 
la musica e questo in brevissimo tempo.


Type ID3v1Tag
   sTag As String * 3
   sTitle As String * 30
   sArtist As String * 30
   sAlbum As String * 30
   sYear As String * 4
   sComment As String * 28
   bNull As Byte
   bTrack As Byte
   bGenre As Byte
End Type
se hai questa struttura come puoi vedere all'artista sono riservati 30 
char. Se il nome e' piu' breve c'e' un riempimento con chr(0)
x=replace(variabile,chr(0),"") dovrebbe funzionare.
-- 
ac
y-1=x


OK.
Tieni presente che nel tuo codice stai leggendo i TAG classici, in fondo al 
file (ultimi 127/128) e non l'ID3 che sono i tag di ultima generazione e 
posizionati all'inizio del file mp3.
In questo caso il codice puň essere molto ridotto e senza i Type.
Per esempio cosě:
Public Function LeggiMp3(NomeFileMp3 As String)
Dim sTitle As String * 30
Dim sArtist As String * 30
Dim sAlbum As String * 30
Dim sYear As String * 4
Dim Commento As String * 30
Dim MiaStringa As String * 127
Open NomeFileMp3 For Binary As #1
Get #1, FileLen(NomeFileMp3) - 127, MiaStringa
Close #1
If Mid(MiaStringa, 1, 3) <> "TAG" Then
MsgBox "TAG non presenti"
Exit Function
Else
MiaStringa = Mid(MiaStringa, 4, Len(MiaStringa))
MiaStringa = Replace(MiaStringa, Chr(0), " ")
End If
sTitle = Trim(Mid(MiaStringa, 1, 30))
sArtist = Trim(Mid(MiaStringa, 31, 30))
sAlbum = Mid(MiaStringa, 61, 30)
sYear = Mid(MiaStringa, 91, 4)
Commento = Mid(MiaStringa, 95, Len(MiaStringa))
'userai queste variabili come piů ti servono
'per esempio: me.NomeArtista = sArtist
End Function
Ciao, Carlo