Differenze tra le versioni di "Scrivere i valori contenuti da un file in un'area riservata di memoria"
Da Gambas-it.org - Wikipedia.
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 3: | Riga 3: | ||
Mostriamo un semplice esempio: | Mostriamo un semplice esempio: | ||
− | + | Public Sub Main() | |
Dim fl As File | Dim fl As File | ||
Riga 10: | Riga 10: | ||
Dim st As Stream | Dim st As Stream | ||
− | fl = Open "<FONT Color= | + | fl = Open "<FONT Color=darkgreen>''/percorso/del/file/da/leggere''</font>" For Read |
Read #fl, s, Lof(fl) | Read #fl, s, Lof(fl) | ||
Riga 25: | Riga 25: | ||
...... | ...... | ||
− | <FONT Color=gray>' ''Viene liberata la memoria precedentemente allocata | + | <FONT Color=gray>' ''Viene chiuso il flusso di dati:''</font> |
+ | st.Close | ||
+ | <FONT Color=gray>' ''Viene liberata la memoria precedentemente allocata e ci si assicura che il Puntatore non punti ad alcun indirizzo di memoria rilevante:''</font> | ||
Free(p) | Free(p) | ||
− | + | p = 0 | |
+ | <FONT Color=gray>' ''Viene chiuso il file:''</font> | ||
fl.Close | fl.Close | ||
− | + | End |
Versione attuale delle 16:15, 7 giu 2024
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 chiuso il flusso di dati: st.Close ' Viene liberata la memoria precedentemente allocata e ci si assicura che il Puntatore non punti ad alcun indirizzo di memoria rilevante: Free(p) p = 0 ' Viene chiuso il file: fl.Close End