Leggere e scrivere in un vettore mediante i Memory Stream

Da Gambas-it.org - Wikipedia.
Versione del 25 set 2014 alle 08:18 di Vuott (Discussione | contributi) (Creata pagina con 'Per poter leggere i dati da un vettore e/o scrivere dati in un vettore mediante i ''Memory Stream'', è necessario ottenere l'indirizzo di memoria del vettor...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per poter leggere i dati da un vettore e/o scrivere dati in un vettore mediante i Memory Stream, è necessario ottenere l'indirizzo di memoria del vettore medesimo. Tale risultato con i vettori si ottiene mediante la proprietà .Data, la quale ritorna un Puntatore ai dati contenuti dal vettore.


Mostriamo dunque un esempio, nel quale si legge e si scrive in un vettore mediante i Memory Stream ed usando la proprietà .Data dei vettori:

Public Sub Main()

 Dim v As Byte[] = [10, 20, 30, 40]
 Dim p As Pointer
 Dim st As Stream
 Dim b, j As Byte

  p = lista1.Data
   
  st = Memory p For Read Write
  
' Aggiungiamo (scriviamo) subito un valore alla fine del vettore:
  Seek #st, 4
' Scriviamo nel "Puntatore" mediante lo "Stream":
  Write #st, 99 As Byte
   
' Leggiamo nell'indirizzo di memoria del vettore: 
  For j = 0 To v.Count
    Seek #st, j
    Read #st, b
    Print b, j
  Next
 
' Sostituiamo (scriviamo) un valore nel 3° elemento del vettore:
  Seek #st, 2
  Write #st, 88 As Byte
   
' Leggiamo nell'indirizzo di memoria del vettore come definitivamente modificato: 
  For j = 0 To v.Count
    Seek #st, j
    Read #st, b
    Print b, j
  Next
 
End