Differenze tra le versioni di "Eliminare un byte all'interno di un file binario"

Da Gambas-it.org - Wikipedia.
Riga 27: Riga 27:
 
   gg.Remove(i)
 
   gg.Remove(i)
 
    
 
    
 +
 
   fl = Open percorso For Create
 
   fl = Open percorso For Create
 
   
 
   

Versione delle 17:28, 8 ago 2012

Se vi è necessità di eliminare un byte all'interno di un file binario, è possibile 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:
Public Sub Button1_Click()

Dim fl As File
Dim g, j As Byte
Dim gg As New Byte[]
Dim i As Integer
   
  fl = Open "percorso_del_file" For Read
  
' leggiamo il file interamente (oppure, se conosciamo
' l'esatta posizione del byte da elimanre, fino a quel byte da eliminare):
  While Not Eof(fl)
    Read #fl, g
' Inseriamo ciascun byte del file in una variabile array di tipo Byte:
    gg.Add(g)
  Wend
  
  fl.Close
  

' Rimuoviamo il byte indicandone la relativa posizione nell'indice array:
  gg.Remove(i)
  

  fl = Open percorso For Create

' Riscriviamo ex novo il file leggendo dalla variabile array,:
' priva ormai del byte che dovevamo eliminare:
 For j = 0 To gg.Max
   g = gg[j]
   Write #fl, g As Byte
 Next

 fl.Close

End