Scrivere in un vettore i dati di un file
Indice
Riempire un vettore mediante il suo Metodo ".Read()"
Se si intende riempire una variabile vettoriale con i dati presenti in un file, si potrà agevolmente ottenere questo risultato utilizzando il Metodo ".Read()" disponibile per ogni tipo di variabile vettoriale.
Tale Metodo legge nel file un numero di byte eventualmente stabilito nel 3° parametro a cominciare dal byte stabilito nel 2° parametro. Se il 2° e il 3° paramentro sono omessi, allora sarà letto l'intero file e caricato nel vettore.
Public Sub Main() Dim bb As Byte[] Dim fl As File fl = Open "/percorso/del/file" For Read ' Impostiamo il numero degli elementi che costituiranno la variabile vettoriale di tipo Byte[] mediante la funzione "Lof()", affinché nel vettore siano contenuti tutti i dati del file: bb = New Byte[](lof(fl)) bb.Read(fl) ' ...o anche: bb.Read(fl, 0, bb.Count) fl.Close End
Uso dell'istruzione "Read"
Se si intende usare l'istruzione "Read", allora si dovrà usare un ciclo:
Public Sub Main() Dim bb As New Byte[] Dim fl As File Dim i As Integer Dim b As Byte fl = Open "/percorso/del/file" For Read ' Usa un ciclo "For...Next": For i = 0 To Lof(fl) - 1 Read #fl, b vettore.Push(b) Next ' ...oppure un ciclo "While...Wend" e la funzione "Eof()": While Not Eof(fl) Read #fl, b vettore.Push(b) Wend fl.Close End
Uso con l'istruzione "Read" del Metodo ".FromString()" dell'Oggetto vettore
Con "Read" si potrà usare senza ciclo una variabile di tipo stringa e il Metodo ".FromStrig()" dell'Oggetto vettore:
Public Sub Main() Dim bb As Byte[] Dim fl As File Dim s As String fl = Open "/percorso/del/file" For Read ' Legge l'intero file: Read #fl, s, Lof(fl) bb = Byte[].FromString(s) fl.Close End
Caricare in un vettore di tipo "Byte[]" i dati di un file senza fare uso di Open...For Read
Per caricare in un vettore di tipo "Byte[]" i dati di un file senza fare uso di Open...For Read, si utilizzerà il Metodo "File.Load()", per caricare il file, ed il Metodo ".FromString()" della Classe "Byte[]". [Nota 1]
Esempio:
Public Sub Main() Dim bb As Byte[] bb = Byte[].FromString(File.Load("/percorso/del/file")) Print bb.count End
Note
[1] Vedere anche: Riempire un vettore di tipo Byte senza Read