Conoscere la lunghezza in byte di ciascuna traccia MTrk di un file Midi
Da Gambas-it.org - Wikipedia.
Per conoscere la lunghezza in byte di ciascuna traccia MTrk di un file Midi standard, si può adottare i seguente codice:
Public Sub Main() Dim filemidi As String Dim i, c, n, j As Integer Dim b, t As Byte Dim mid As File filemidi = "/percorso/del/file/Midi" mid = Open filemidi For Read Print "=== Tracce MTrk ===" Repeat ' Avanza dall'inizio del file Midi di un byte alla volta: Seek #mid, c Read #mid, i ' Cerca il valore numerico corrispondente ai quattro caratteri ASCII "MTrk": If i == 1802654797 Then ' Ottiene il valore numerico della lunghezza della traccia "MTrk" dalla sua memorizzazione di quattro byte in formato Big-Endian: [nota 1] For n = 1 To 4 Read #mid, b j = Shl(j, 8) Or b Next Inc t Print "Traccia n. \e[1m"; Format(t, "##") Print "\e[0mPosizione indice = "; c Print "Lunghezza = \e[31m"; Format(j, "######"); "\e[0m byte\n" Endif Inc c Until Eof(mid) mid.Close End
Note
[1] Al riguardo vedere la seguente pagina: Ottenere un numero dalla sua memorizzazione in formato Big-Endian