Eliminare un byte all'interno di un file binario

Da Gambas-it.org - Wikipedia.
Versione del 24 giu 2024 alle 08:59 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Se vi è necessità di eliminare un byte all'interno di un file binario, è possibile anche adottare la seguente procedura, che può essere suddivisa in tre fasi:

  • lettura dei dati presenti nel file;
  • eliminazione del byte prescelto;
  • riscrittura ex novo del file senza il byte eliminato.

Per realizzare queste tre fasi si utilizzeranno alcune risorse dell'array di tipo Byte[]:

Public Sub Main()

  Dim fl As File
  Dim bb As New Byte[]
   
  fl = Open "/percorso/del/file" For Read
  
  bb = New Byte[Lof(fl)]

' Legge il file interamente, inserendo ciascun byte del file in una variabile array di tipo Byte[]:
  bb.Read(fl, 0, Lof(fl))

  fl.Close
  
' Rimuove il byte indicandone la relativa posizione nell'indice array (in questo esempio viene eliminato il valore-byte d'indice 4):
  bb.Remove(4)
 
  fl = Open "/percorso/del/file" For Create

' Riscrive ex novo il file leggendo dalla variabile array, priva ormai del byte che si doveva eliminare:
  bb.Write(fl, 0, bb.Count)

  fl.Close

End