Differenze tra le versioni di "Estrarre da un file WAV i soli dati audio grezzi"

Da Gambas-it.org - Wikipedia.
Riga 16: Riga 16:
 
    
 
    
 
   File.Save("/tmp/grezzi", dati_grezzi)
 
   File.Save("/tmp/grezzi", dati_grezzi)
 +
 
 +
'''End'''
 +
 +
 +
oppure utilizzare le funzioni dei vettori di tipo ''Byte[]'':
 +
'''Public''' Sub Main()
 +
 +
  Dim fileWAV As String
 +
  Dim fl, ex As File
 +
  Dim d As Short
 +
  Dim bb As Byte[]
 +
 +
 +
  fileWAV = "''/percorso/del/file.wav''"
 +
 +
<FONT color=gray>' ''Carica un file audio Wav:''</font>
 +
  fl = Open fileWAV For Read
 +
 
 +
  d = InStr(File.Load(fileWAV), "data")
 +
 
 +
  bb = New Byte[Stat(fileWAV).Size - (d + 7)]
 +
 +
<FONT color=gray>' ''Spostiamo il puntatore all'interno del flusso del file''
 +
' ''sul primo byte successivo all'header del file wav:''</font>
 +
  Seek #fl, d + 7
 +
  bb.Read(fl, 0, Stat(fileWAV).Size - (d + 7))
 +
 +
 +
  ex = Open "/tmp/dati_grezzi" For Create
 +
 
 +
<FONT color=gray>' ''Scrive il file contenente i soli dati audio grezzi del file Wav:''</font>
 +
  bb.Write(ex)
 +
 
 +
 +
<FONT color=gray>' ''Va in chiusura:''</font>
 +
  ex.Close
 +
 
 +
  fl.Close
 
    
 
    
 
  '''End'''
 
  '''End'''

Versione delle 04:42, 21 mar 2014

Per estrarre da un file WAV i soli dati audio grezzi unicamente mediante le funzioni di Gambas, è possibile utilizzare un codice come il seguente:

Public Sub Main()

 Dim percorsoFile, intero_file, dati_grezzi As String
 Dim n As Short


  percorsoFile = "/percorso/del/file.wav"
 
  intero_file = File.Load(percorsoFile)

  n = InStr(intero_file, "data")
  
' Prendiamo i soli dati audio grezzi dal file, eliminando quelli che compongono il suo "header":
  dati_grezzi = Right(intero_file, Len(intero_file) - n - 7)
  
  File.Save("/tmp/grezzi", dati_grezzi)
 
End


oppure utilizzare le funzioni dei vettori di tipo Byte[]:

Public Sub Main()

 Dim fileWAV As String
 Dim fl, ex As File
 Dim d As Short
 Dim bb As Byte[]


  fileWAV = "/percorso/del/file.wav"

' Carica un file audio Wav:
  fl = Open fileWAV For Read
 
  d = InStr(File.Load(fileWAV), "data")
 
  bb = New Byte[Stat(fileWAV).Size - (d + 7)]

' Spostiamo il puntatore all'interno del flusso del file
' sul primo byte successivo all'header del file wav:
  Seek #fl, d + 7
  bb.Read(fl, 0, Stat(fileWAV).Size - (d + 7))


  ex = Open "/tmp/dati_grezzi" For Create
 
' Scrive il file contenente i soli dati audio grezzi del file Wav:
  bb.Write(ex)
 

' Va in chiusura:
  ex.Close
 
  fl.Close
 
End