Estrarre informazioni e TAG da un file OggVorbis con le sole funzioni di Gambas
Da Gambas-it.org - Wikipedia.
E' possibile estrarre informazioni generali e TAG da un file OggVorbis con le sole funzioni di Gambas.
Un possibile codice è il seguente:
Public Sub Main() Dim ogg, s As String Dim i, n, c As Integer ogg = "/percorso/del/file.ogg" s = File.Load(ogg) ' Verifica se effettivamente è un file .ogg: If Left(s, 4) <> "OggS" Then Error.Raise("Attenzione ! Il file caricato non è un file OGG !") Print "File ogg: "; ogg Print "\nDimensione: "; Len(s); " byte" Print "Canali: "; Asc(s, 40) ' Estrae la frequenza di campionamento: Print "Frequenza: "; Val("&" & Estrazione(s, 44)); " hertz" ' Estrae il bitrate nominale: Print "Bitrate "; Val("&" & Estrazione(s, 52)) \ 1000; " Kbps" ' Individua il secondo testo "vorbis" nel file: i = InStr(s, "vorbis", InStr(s, "vorbis") + 5) ' Individua il byte che indica il numero di caratteri che compongono la stringa del "Vendor": n = Asc(s, i + 6) ' Avanza con l'indicatore: i += 10 ' Legge la stringa del "Vendor": Print "Vendor: "; Mid(s, i, n) Print "\nCommenti:" ' Avanza con l'indicatore: i += n ' Individua il byte che indica la quantità di "commenti" presenti nel file ogg: n = Asc(s, i) If n = 0 Then Quit ' Avanza con l'indicatore: i += 4 ' Individua il byte che indica il numero di caratteri che compongono la stringa del 1° "Commento": c = Asc(s, i) ' Legge i "commenti": Repeat ' Avanza con l'indicatore: i += 4 ' Legge la stringa di caratteri del "Commento": Print Mid(s, i, c) ' Avanza con l'indicatore: i += c ' Individua il byte che indica il numero di caratteri che compongono la stringa del "Commento": c = Asc(s, i) Dec n Until n = 0 End Private Function Estrazione(t As String, byte As Integer) As String Dim rit As String Dim n As Integer For n = byte To byte - 3 Step -1 rit &= Hex(Asc(t, n), 2) Next Return rit End