Eliminare una traccia da un file MIDI
Da Gambas-it.org - Wikipedia.
Versione del 29 mag 2015 alle 15:29 di Vuott (Discussione | contributi)
Per eliminare una traccia da un file Midi con le sole funzioni di Gambas, è possibile usare il seguente codice:
Public Sub Button1_Click() Dim s As String Dim bb As New Byte[] Dim el As Byte Dim i, lungh As Integer Dim ii As New String[] s = File.Load("/percorso/del/file.mid") bb = Byte[].FromString(s) ' Ciclo per individuare ciascuna traccia "MTrk" del file Midi: Do i = InStr(s, "MTrk", i + 1) If i > 0 Then ii.Push(i) Loop Until i = 0 Print "Il file Midi contiene";; ii.Count;; "tracce Midi." el = Val(InputBox("Scegliere la traccia da eliminare:")) Select Case el Case 1 Message.Warning("Eliminazione della 'Traccia del Tempo' non consentita !") Return Case ii.Count + 1 Message.Warning("Numero traccia superiore alla quantità di tracce presenti nel file Midi !") Return End Select ' Individua la dimensione della traccia da eliminare: lungh = bb[ii[el - 1] + 6] lungh += bb[ii[el - 1] + 5] * 256 ' &0100 lungh += bb[ii[el - 1] + 4] * 65536 ' &010000 lungh += bb[ii[el - 1] + 3] * 16777216 ' &01000000 bb.Remove(ii[el - 1] - 1, 8 + lungh) bb[11] -= 1 Print "Salvataggio del nuovo file Midi pari a";; bb.Count;; "byte." File.Save("/percorso/del/nuovo_file.mid", bb.ToString(0, bb.count)) End