Scrivere i valori contenuti da un file in un'area riservata di memoria

Da Gambas-it.org - Wikipedia.

Per scrivere i dati, letti da un file, all'interno di un'area riservata di memoria puntata da un Puntatore, si procederà innanzitutto ad assegnare tali dati in una variabile di tipo Stringa. Successivamente si provvederà a scrivere mediante i Memory Stream i valori, contenuti dalla predetta variabile Stringa, nell'area di memoria allocata.


Mostriamo un semplice esempio:

Public Sub Main()

 Dim fl As File
 Dim s As String
 Dim p As Pointer
 Dim st As Stream

 fl = Open "/percorso/del/file/da/leggere" For Read
 Read #fl, s, Lof(fl)
 
' Viene allocata una quantità di memoria sufficiente a contenere i dati del file:
 p = Alloc(SizeOf(gb.Byte), Lof(fl))

' Dall'area riservata di memoria si genera una variabile "Stream" per potervi scrivere:
 st = Memory p For Write

' Si procede a scrivere nell'area riservata di memoria i dati del file ora contenuti dalla variabile Stringa:
 Write #st, s

' Si fa qualcosa con l'area riservata di memoria ora contenente i dati sopra scritti:
 ......

' Viene liberata la memoria precedentemente allocata, chiusi il flusso ed il file:
 Free(p)
 st.Close
 fl.Close

End