Leggere un file binario con READ
Da Gambas-it.org - Wikipedia.
Se si intende leggere tutti i byte presenti all'interno del file, cioè l'intero file:
Public Sub Button1_Click()
Dim intfile As File
Dim b As Byte
' legge il file e lo carica nella variabile As File: "intfile"
intfile = Open "percorso_del_mio_file.xxx" For Read
' avvia un ciclo per leggere tutti i byte...fino alla fine del file
While Not Eof(intfile)
' Ad ogni passaggio legge un byte e lo inserisce in “b“
' (il puntatore interno di Read avanza la lettura di un byte ad ogni passaggio) e...
Read #intfile, b {1}
' ...ne mostra i byte in formato esadecimale.
' mostra le due cifre per ogni valore esadecimale:
Print Hex(b, 2)
Wend
' chiude il file:
Close #intfile
End
Se si vuole leggere tutto il file, ma un byte dopo l'altro solo ogni volta che si preme un tasto:
intfile As File
Public Sub Form_Open()
' legge il file e lo carica nella variabile As File: "intfile"
intfile = Open "percorso_del_mio_file.xxx" For Read
End
Public Sub Button1_Click()
Dim b As Byte
' Ad ogni clic sul tasto legge un byte, e lo inserisce nella variabile “b“
' (il puntatore interno di Read avanza la lettura di un byte ad ogni passaggio) e...
Read #intfile, b
'...ne mostra il byte (questa volta in valore decimale):
Print b
End
Public Sub Button2_Click()
' Chiude il file
Close #intfile
End
[modifica] Leggere uno specifico byte all'interno del file
Se invece si intende leggere un solo specifico byte all'interno del file:
Public Sub Button1_Click() Dim intfile As File Dim bb As Byte ' legge il file e lo carica nella variabile As File: "intfile" intfile = Open "percorso_del_mio_file.xxx" For Read ' si scelge di leggere il valore del byte n. 3, ossia del "quarto" byte (infatti il conteggio inizia da zero: 0, 1, 2, 3, etc, etc): Seek #intfile, 3 ' legge il valore del byte puntato da Seek: Read #intfile, bb ' lo mostra in console in decimale: Print bb ' chiude il file: Close #intfile END
[modifica] Note
[1] Da notare che:
- in una istruzione READ #varFile, variabile, noi leggiamo il valore contenuto in "#varFile" e lo scriviamo in "variabile (scriviamo, cioè, in "variabile" il valore presente in "varFile";
- in una istruzione WRITE #varFile, variabile, noi leggiamo il valore contenuto in "variabile" e lo scriviamo in "#varFile" (scriviamo, cioè, in "varFile" il valore presente in "variabile").

