Differenze tra le versioni di "Scrivere i valori contenuti da un file in un'area riservata di memoria"
Da Gambas-it.org - Wikipedia.
Riga 12: | Riga 12: | ||
fl = Open "''/percorso/del/file/da/leggere''" For Read | fl = Open "''/percorso/del/file/da/leggere''" For Read | ||
Read #fl, s, -256 | Read #fl, s, -256 | ||
− | + | ||
− | |||
<FONT Color=gray>' ''Viene allocata una quantità di memoria sufficiente a contenere i dati del file:''</font> | <FONT Color=gray>' ''Viene allocata una quantità di memoria sufficiente a contenere i dati del file:''</font> | ||
− | p = Alloc(Lof(fl)) | + | p = Alloc(CInt(Lof(fl))) |
st = Memory p For Write | st = Memory p For Write | ||
Riga 27: | Riga 26: | ||
− | <FONT Color=gray>' ''Viene liberata la memoria precedentemente allocata | + | <FONT Color=gray>' ''Viene liberata la memoria precedentemente allocata, chiusi il flusso ed il file:''</font> |
Free(p) | Free(p) | ||
st.Close | st.Close | ||
+ | fl.Close | ||
'''End''' | '''End''' |
Versione delle 06:59, 17 feb 2015
Per scrivere i valori contenuti all'interno di un'area riservata di memoria puntata da una variabile di tipo Puntatore, si procederà innanzitutto a leggere il file e ad assegnare i dati letti 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, -256 ' Viene allocata una quantità di memoria sufficiente a contenere i dati del file: p = Alloc(CInt(Lof(fl))) st = Memory p For Write ' Si procede a scrivere i dati del file attualmente contenuti dalla variabile Stringa: Write #st, s ' Qui vengono poste le istruzioni che utilizzano la memoria allocata. ...... ...... ' Viene liberata la memoria precedentemente allocata, chiusi il flusso ed il file: Free(p) st.Close fl.Close End