Differenze tra le versioni di "Scrivere in un vettore i dati di un file"

Da Gambas-it.org - Wikipedia.
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:
 
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.
 
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.
 
<BR>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.
 
<BR>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()
+
  Public Sub Main()
 
   
 
   
  Dim bb As Byte[]
+
  Dim bb As Byte[]
  Dim fl As File
+
  Dim fl As File
 
   
 
   
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
+
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
 
   
 
   
 
  <FONT color=gray>' ''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:''</font>
 
  <FONT color=gray>' ''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:''</font>
  bb = New Byte[](lof(fl))
+
  bb = New Byte[](lof(fl))
 
   
 
   
  <FONT color=B22222>bb.Read(fl)</font>  <FONT color=gray>' ''...o anche:'' '''bb.Read(fl, 0, bb.Count)'''</font>
+
<FONT color=B22222>bb.Read(fl)</font>  <FONT color=gray>' ''...o anche:'' '''bb.Read(fl, 0, bb.Count)'''</font>
   
+
 
  fl.Close
+
  fl.Close
 
   
 
   
  '''End'''
+
  End
  
  
==Uso dell'istrizione "Read"==
+
==Uso dell'istruzione "Read"==
 
Se si intende usare l'istruzione "Read", allora si dovrà usare un ciclo:
 
Se si intende usare l'istruzione "Read", allora si dovrà usare un ciclo:
  '''Public''' Sub Main()
+
Public Sub Main()
 
   
 
   
  Dim bb As New Byte[]
+
  Dim bb As New Byte[]
  Dim fl As File
+
  Dim fl As File
  Dim i As Integer
+
  Dim i As Integer
  Dim b As Byte
+
  Dim b As Byte
+
 
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
+
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
 
   
 
   
 
  <FONT color=gray>' ''Usa un ciclo "For...Next":''</font>
 
  <FONT color=gray>' ''Usa un ciclo "For...Next":''</font>
  For i = 0 To Lof(fl) - 1
+
  For i = 0 To Lof(fl) - 1
    Read #fl, b  
+
    Read #fl, b  
    vettore.Push(b)
+
    vettore.Push(b)
  Next
+
  Next
+
 
 
  <FONT color=gray>' ''...oppure un ciclo "While...Wend" e la funzione "Eof()":''</font>
 
  <FONT color=gray>' ''...oppure un ciclo "While...Wend" e la funzione "Eof()":''</font>
  While Not Eof(fl)
+
  While Not Eof(fl)
    Read #fl, b  
+
    Read #fl, b  
    vettore.Push(b)
+
    vettore.Push(b)
  Wend
+
  Wend
 
    
 
    
  fl.Close
+
  fl.Close
 
   
 
   
  '''End'''
+
  End
  
  
===Uso con l'istruzione "Read" del Metodo ".FromString()" dell'Oggetto vettore===
+
===Uso con l'istruzione "Read" del Metodo ".FromString()" del vettore di tipo Byte[]===
Con "Read" si potrà usare senza ciclo una variabile di tipo stringa e il Metodo ".FromStrig()" dell'Oggetto vettore:
+
Con "Read" si potrà usare senza ciclo una variabile di tipo stringa e il Metodo ".FromString()" del vettore:
  '''Public''' Sub Main()
+
Public Sub Main()
 
   
 
   
  Dim bb As Byte[]
+
  Dim bb As Byte[]
  Dim fl As File
+
  Dim fl As File
  Dim s As String  
+
  Dim s As String  
+
 
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
+
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
 
   
 
   
 
  <FONT color=gray>' ''Legge l'intero file:''</font>
 
  <FONT color=gray>' ''Legge l'intero file:''</font>
  Read #fl, s, Lof(fl)
+
  Read #fl, s, Lof(fl)
+
 
  bb = Byte[].FromString(s)
+
  bb = Byte[].FromString(s)
 
   
 
   
  fl.Close
+
  fl.Close
 
   
 
   
  '''End'''
+
  End
  
  
==Caricare in un vettore di tipo "Byte[]" i dati di un file senza fare uso di ''Open...For Read''==
+
==Caricare in un vettore di tipo "Byte[]" i dati di un file con il Metodo "File.Load()"==
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[]".  <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
+
Per caricare in un vettore di tipo "Byte[]" i dati di un file senza fare uso di ''Open...For Read'', si utilizzeranno il Metodo "File.Load()" e il Metodo ".FromString()" della Classe "Byte[]".  <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
  
 
Esempio:
 
Esempio:
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim bb As Byte[]
 
   Dim bb As Byte[]
Riga 79: Riga 79:
 
   Print bb.count
 
   Print bb.count
 
   
 
   
  '''End'''
+
  End
  
  
  
 
=Note=
 
=Note=
[1] Vedere anche: [[Riempire un vettore di tipo Byte senza Read]]
+
[1] Vedere anche: [[Ottenere un vettore di tipo Byte da una Stringa]]

Versione attuale delle 10:17, 30 ago 2023

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()" del vettore di tipo Byte[]

Con "Read" si potrà usare senza ciclo una variabile di tipo stringa e il Metodo ".FromString()" del 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 con il Metodo "File.Load()"

Per caricare in un vettore di tipo "Byte[]" i dati di un file senza fare uso di Open...For Read, si utilizzeranno il Metodo "File.Load()" e 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: Ottenere un vettore di tipo Byte da una Stringa