Differenze tra le versioni di "Azzerare un gruppo di byte in un file"

Da Gambas-it.org - Wikipedia.
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Poniamo il caso di voler azzerare all'interno di un file i primi quattro byte.
 
Poniamo il caso di voler azzerare all'interno di un file i primi quattro byte.
  
Tale operazione potrà essere compiuta con un ciclo operando sul file, come fosse testo, con alcune funzioni sulle stringhe:
+
Tale operazione potrà essere compiuta mediante alcune modalità.
'''Public''' Sub Main()
+
 
 +
===Usando un vettore di tipo Byte[] e il suo Metodo ".Fill()"===
 +
Public Sub Main()
 +
 +
  Dim bb As Byte[]
 
   
 
   
  Dim b As Byte
+
  bb = Byte[].FromString(File.Load("<FONT Color=darkgreen>''/percorso/del/file''</font>"))
 
   
 
   
   For j = 1 To 4
+
   bb.Fill(0, 0, 4)
 +
 
 +
  Print bb.ToString(0, bb.Count)
 
   
 
   
    File.Save("''/percorso/del/file''", Replace(File.Load("''/percorso/del/file''"), Chr(Asc(File.Load("''/percorso/del/file''"), b)), Chr(0)))
+
End
 +
 
 +
 
 +
===Con alcune funzioni sulle stringhe===
 +
Con un ciclo:
 +
Public Sub Main()
 
   
 
   
 +
  Dim s As String
 +
 +
  s = "<FONT Color=darkgreen>''/percorso/del/file''</font>"
 +
 +
  For b As Byte = 1 To 4
 +
    File.Save(s, Replace(File.Load(s), Chr(Asc(File.Load(s), b)), Chr(0)))
 
   Next
 
   Next
 
   
 
   
  '''End'''
+
  End
 
 
 
 
 
 
 
oppure senza compiere alcun ciclo:
 
oppure senza compiere alcun ciclo:
  '''Private''' buff[4] As Byte
+
  Private buff[4] As Byte
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
Dim fl As File
+
  Dim fl As File
Dim b As Byte
+
  Dim b As Byte
 
   
 
   
  fl = Open "''/percorso/del/file''" For Write
+
  fl = Open "<FONT Color=darkgreen>''/percorso/del/file''</font>" For Write
 
   
 
   
    Write #fl, buff As Byte[]
+
  Write #fl, buff As Byte[]
 
   
 
   
    fl.Close
+
  fl.Close
 
+
   
  '''End'''
+
  End
 
+
Senza ciclo si potrà anche adoperare direttamente il Metodo “.Write” della Classe di array di tipo "Byte[]":
 
+
  Public Sub Main()
 
 
Senza ciclo si potrà anche adoperare direttamente il metodo ''.Write''” della Classe ''byte[]'':
 
  '''Public''' Sub Main()
 
 
   
 
   
  Dim fl As File   
+
  Dim fl As File   
  Dim buff As New Byte[4]
+
  Dim buff As New Byte[4]
 
   
 
   
   fl = Open "''/percorso/del/file''" For Write
+
   fl = Open "<FONT Color=darkgreen>''/percorso/del/file''</font>" For Write
 
   
 
   
    buff.<FONT color=#B22222>Write</font>(fl)
+
  buff.<FONT color=red>Write</font>(fl)
 
   
 
   
 
   fl.Close
 
   fl.Close
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 13:45, 23 giu 2024

Poniamo il caso di voler azzerare all'interno di un file i primi quattro byte.

Tale operazione potrà essere compiuta mediante alcune modalità.

Usando un vettore di tipo Byte[] e il suo Metodo ".Fill()"

Public Sub Main()

  Dim bb As Byte[]

  bb = Byte[].FromString(File.Load("/percorso/del/file"))

  bb.Fill(0, 0, 4)
 
  Print bb.ToString(0, bb.Count)

End


Con alcune funzioni sulle stringhe

Con un ciclo:

Public Sub Main()

  Dim s As String

  s = "/percorso/del/file"

  For b As Byte = 1 To 4
    File.Save(s, Replace(File.Load(s), Chr(Asc(File.Load(s), b)), Chr(0)))
  Next

End

oppure senza compiere alcun ciclo:

Private buff[4] As Byte


Public Sub Main()

  Dim fl As File
  Dim b As Byte

  fl = Open "/percorso/del/file" For Write

  Write #fl, buff As Byte[]

  fl.Close
   
End

Senza ciclo si potrà anche adoperare direttamente il Metodo “.Write” della Classe di array di tipo "Byte[]":

Public Sub Main()

  Dim fl As File  
  Dim buff As New Byte[4]

  fl = Open "/percorso/del/file" For Write

  buff.Write(fl)

  fl.Close

End