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

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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 D...")
 
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 17: Riga 17:
 
  <FONT Color=gray>' ''Ogni numero esadecimale sarà separato da uno spazio (ovviamente si potrà scegliere di non inserire questo spazio):''</font>
 
  <FONT Color=gray>' ''Ogni numero esadecimale sarà separato da uno spazio (ovviamente si potrà scegliere di non inserire questo spazio):''</font>
 
   File.Save("/tmp/file", ss.Join(" ", Null))
 
   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 "<FONT Color=darkgreen>''/percorso/del/file''</font>" For Read
 +
 +
  While Not Eof(fl)
 +
    Read #fl, b
 +
    ss.Push(Hex(b, 2))
 +
  Wend
 +
 +
  fl.Close
 +
 +
<FONT Color=gray>' ''Apre il file in "Scrittura" ove saranno salvati i valori in rappresentazione esadecimale:''</font>
 +
  fl = Open "/tmp/file" For Create
 +
 +
  For i = 0 To ss.Max
 +
    Inc n
 +
    Write #fl, ss[i]
 +
<FONT Color=gray>' ''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):''</font>
 +
    If (i > 0) And (n Mod 16 == 0) Then
 +
      Write #fl, gb.NewLine
 +
    Else
 +
      Write #fl, Chr(32)
 +
    Endif
 +
  Next
 +
 +
  fl.Close
 
   
 
   
 
  End
 
  End

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