Differenze tra le versioni di "Salvare i byte-dati di un file in un file di testo"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 35: Riga 35:
 
   fl.Close
 
   fl.Close
 
   
 
   
  <FONT Color=gray>' ''Apre il file ove saranno salvati i valori in rappresentazione esadecimale:''</font>
+
  <FONT Color=gray>' ''Apre il file in "Scrittura" ove saranno salvati i valori in rappresentazione esadecimale:''</font>
   fl = Open "/tmp/file" For Write Append
+
   fl = Open "/tmp/file" For Create
 
   
 
   
 
   For i = 0 To ss.Max
 
   For i = 0 To ss.Max

Versione attuale delle 09:46, 14 dic 2023

Mostreremo un esempio per salvare i byte-dati di un file nella loro rappresentazione esadecimale in un file di testo:

Public Sub Main()

 Dim fl As File
 Dim b As Byte
 Dim ss As New String[]

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

 While Not Eof(fl)
   Read #fl, b
   ss.Push(Hex(b, 2))
 Wend

 fl.Close

' Ogni numero esadecimale sarà separato da uno spazio (ovviamente si potrà scegliere di non inserire questo spazio):
 File.Save("/tmp/file", ss.Join(" ", Null))

End

In quest'altro esempio i valori in esadecimale dei byte-dati saranno disposti per righe composte da 16 valori separati da uno spazio:

Public Sub Main()

 Dim fl As File
 Dim b As Byte
 Dim ss As New String[]

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

 While Not Eof(fl)
   Read #fl, b
   ss.Push(Hex(b, 2))
 Wend

 fl.Close

' Apre il file in "Scrittura" ove saranno salvati i valori in rappresentazione esadecimale:
 fl = Open "/tmp/file" For Create

 For i = 0 To ss.Max
   Inc n
   Write #fl, ss[i]
' Ciascuna riga sarà formata da 16 valori in rappresentazione esadecimale separati fra loro da uno spazio (ovviamente si potrà scegliere di non inserire questo spazio):
   If (i > 0) And (n Mod 16 == 0) Then 
     Write #fl, gb.NewLine 
   Else
     Write #fl, Chr(32)
   Endif
 Next

 fl.Close

End