Differenze tra le versioni di "Conoscere la lunghezza in byte di ciascuna traccia MTrk di un file Midi"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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...")
 
Riga 1: Riga 1:
Per conoscere la lunghezza in byte di ciascuna traccia MTrk di un file Midi standard, si può adottare i seguente codice:
+
Per conoscere la lunghezza in byte di ciascuna traccia [https://www.gambas-it.org/wiki/index.php/La_struttura_di_un_file_Midi#Il_blocco_Traccia_.28MTrk.29 '''MTrk'''] di un file Midi standard, si può adottare i seguente codice:
 
  Public Sub Main()
 
  Public Sub Main()
 
   
 
   

Versione delle 18:50, 1 lug 2023

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

 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 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