Differenze tra le versioni di "Scrivere in un file i dati presenti in un vettore di tipo Byte"
Riga 8: | Riga 8: | ||
laddove: | laddove: | ||
* "fl" è una variabile di tipo ''File'' o di tipo ''Stream'', nella quale scrivere i dati presenti nell'array "vettore"; | * "fl" è una variabile di tipo ''File'' o di tipo ''Stream'', nella quale scrivere i dati presenti nell'array "vettore"; | ||
− | * "Inizio" è il numero d'indice del byte dell'array "vettore" da cui si parte per leggere i dati contenuti nell'array | + | * "Inizio" è il numero d'indice del byte dell'array "vettore" da cui si parte per leggere i dati, contenuti nell'array, che saranno scritti nella variabile "fl"; |
− | * "Lunghezza" è la quantità di valori-byte che si leggeranno dall'array "vettore" e si scriveranno nella variabile "fl". | + | * "Lunghezza" è la quantità di valori-byte che si leggeranno dall'array "vettore", a partire dal byte di numero d'indice impostato nel 2° argomento, e si scriveranno nella variabile "fl". |
− | + | Mostriamo un esempio pratico: | |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 25: | Riga 25: | ||
'''End''' | '''End''' | ||
− | Va detto che il Metodo ".Write()" dell'array di tipo Byte[], posto in un ciclo di scrittura, si comporta come fosse impostata la parola-chiave "Append" della funzione ''[https://gambaswiki.org/wiki/lang/open?l=it Open]''. | + | Va detto che il Metodo ".Write()" dell'array di tipo Byte[], posto in un ciclo di scrittura, si comporta <SPAN Style="text-decoration:underline">come fosse impostata la parola-chiave "Append"</span> della funzione ''[https://gambaswiki.org/wiki/lang/open?l=it Open]''. |
+ | <BR>Pertanto al file verrà aggiunto un numero dei valori-byte successivi a quelli già appena precedentemente letti dal vettore e salvati nel file. | ||
<BR>Mostriamo un esempio: | <BR>Mostriamo un esempio: | ||
Public Sub Main() | Public Sub Main() | ||
Riga 43: | Riga 44: | ||
Until i == 24 | Until i == 24 | ||
− | + | fl.Close | |
End | End |
Versione delle 11:47, 19 mag 2023
Se si intende scrivere in un file dati contenuti in una variabile vettoriale di tipo "Byte[]", sarà assolutamente necessario tenere conto del vettore.
Indice
Uso del Metodo ".Write()" del vettore
In entrambi i casi si potrà utilizzare anche il Metodo "Write()" della variabile vettoriale di tipo Byte[].
La sintassi è:
vettore.Write( fl As Stream [ , Inizio As Integer, Lunghezza As Integer ] )
laddove:
- "fl" è una variabile di tipo File o di tipo Stream, nella quale scrivere i dati presenti nell'array "vettore";
- "Inizio" è il numero d'indice del byte dell'array "vettore" da cui si parte per leggere i dati, contenuti nell'array, che saranno scritti nella variabile "fl";
- "Lunghezza" è la quantità di valori-byte che si leggeranno dall'array "vettore", a partire dal byte di numero d'indice impostato nel 2° argomento, e si scriveranno nella variabile "fl".
Mostriamo un esempio pratico:
Public Sub Main() Dim vettore As Byte[] = [&11, &22, &33, &44, &55, &66, &77, &88] Dim fl As File fl = Open "/percorso/del/file/da/scrivere" For Create ' Viene scritto il file: vettore.Write(fl, 0, vettore.Count) fl.Close End
Va detto che il Metodo ".Write()" dell'array di tipo Byte[], posto in un ciclo di scrittura, si comporta come fosse impostata la parola-chiave "Append" della funzione Open.
Pertanto al file verrà aggiunto un numero dei valori-byte successivi a quelli già appena precedentemente letti dal vettore e salvati nel file.
Mostriamo un esempio:
Public Sub Main() Dim vettore As Byte[] = [&11, &22, &33, &44, &55, &66, &77, &88, &11, &22, &33, &44, &55, &66, &77, &88, &11, &22, &33, &44, &55, &66, &77, &88] Dim fl As File Dim i As Integer fl = Open "/percorso/del/file/da/scrivere" For Create Repeat ' Ad ogni ciclo aggiunge i successivi 8 byte al file creato: vettore.Write(fl, 0, 8) i += 8 Until i == 24 fl.Close End
Uso del Metodo ".ToString()" del vettore e del Metodo ".Save()" della Classe File
Per riempire un file già esistente e vuoto si potrà fare uso in modo semplice e breve del Metodo ".ToString()" del vettore e del Metodo ".Save()" della Classe File.
Esempio:
Public Sub Main() Dim vettore As Byte[] = [&11, &22, &33, &44, &55, &66, &77, &88] File.Save("/percorso/del/file/da/scrivere, vettore.ToString(0, vettore.Count)) End
Mediante le istruzioni "Open e "Write"
Mostriamo un esempio che fa uso dell'istruzione "Write" per scrivere in un file i dati presenti in un vettore di tipo "Byte[]":
Public Sub Main() Dim vettore As Byte[] = [&11, &22, &33, &44, &55, &66, &77, &88] Dim b As Byte Dim fl As File fl = Open "/percorso/del/file/da/scrivere" For Create For b = 0 To vettore.Max ' Viene scritto il file: Write #fl, vettore[b] As Byte Next fl.Close End
Passare i dati del vettore mediante la sua Proprietà ".Data"
Si potrà impostare quale 2° membro della riga di comando dell'istruzione "Write" la Proprietà ".Data" del vettore, avendo altresì cura di impostare il 3° membro della riga di comando, quale numero di byte da scrivere nel file.
Esempio:
Public Sub Main() Dim vettore As Byte[] = [&11, &22, &33, &44, &55, &66, &77, &88] Dim fl As File fl = Open "/percorso/del/file/da/scrivere" For Create Write #fl, vettore.Data, vettore.Count fl.Close End
Caso in cui si dichiarasse quale "Array" o quale "Byte[]" il tipo di dati del secondo membro della riga di istruzione con "Write"
Da rilevare che, se dopo il secondo membro dell'istruzione "Write" si dichiarasse il tipo di dati come "Array" oppure come "Byte[]", potremmo notare nei primi tre byte del file scritto i valori 41 02 04 ...., i quali stanno a rappresentare:
41 è l'Array (il carattere 'A' sta appunto per Array). 02 significa Byte. 08 è il numero della dimensione del vettore (in questo esempio = 8).
e solo dopo tali tre valori seguono i veri byte del contenuto del vettore.
Esempio:
Public Sub Main() Dim vettore As Byte[] = [&11, &22, &33, &44, &55, &66, &77, &88] Dim fl As File fl = Open "/percorso/del/file/da/scrivere" For Create Write #fl, vettore As Array ' ...oppure: As Byte[] fl.Close End