Differenze tra le versioni di "Scrivere in un file solo alcuni dati presenti in un'area riservata di memoria"
Da Gambas-it.org - Wikipedia.
Riga 23: | Riga 23: | ||
− | <FONT color=gray>' ''Generiamo una variabile di tipo "Stream" dal "Puntatore":''</font> | + | <FONT color=gray>' ''Generiamo una variabile di tipo "Stream" dal "Puntatore",'' |
+ | ' ''per poter scrivere nella variabile "Puntatore" medesima:''</font> | ||
t = Memory p For Write | t = Memory p For Write | ||
− | <FONT color=gray>' ''Scriviamo dieci byte all'interno di quell'area di memoria riservata:''</font> | + | <FONT color=gray>' ''Scriviamo mediante la variabile di tipo "Stream" dieci byte'' |
+ | ' ''all'interno di quell'area di memoria riservata:''</font> | ||
For j = 97 To 106 | For j = 97 To 106 | ||
Write #t, j As Byte | Write #t, j As Byte |
Versione delle 05:45, 8 nov 2013
Il caso è quello in cui si intende scrivere in un file soltanto alcuni dati contenuti in un'area riservata di memoria e puntata da una variabile di tipo puntatore.
Nell'esempio esplicativo si precederà innanzitutto a scrivere usa serie di dati nell'area riservata di memoria mediante i Memory-Stream. Successivamente si scrivernno nel file, aperto in scrittura, solo 4 byte, partendo dal terzo byte, precedentemente memorizzati nell'area riservata.
Per poter scrivere solo alcuni dati con il comando Write, è necessario aggiungere un terzo elemento alla corrispondente riga di comando:
Write #file, puntatore, n
laddove n rappresenta la quantità di byte, presenti nella variabile puntatore, che dovranno essere scritti nel file.
Esempio:
Public Sub Main() Dim fl As File Dim p As Pointer Dim t As Stream Dim j As Byte ' Allochiamo un'area di memoria pari a dieci byte, ' che sarà puntata da una variabile di tipo "Puntatore": p = Alloc(10) ' Generiamo una variabile di tipo "Stream" dal "Puntatore", ' per poter scrivere nella variabile "Puntatore" medesima: t = Memory p For Write ' Scriviamo mediante la variabile di tipo "Stream" dieci byte ' all'interno di quell'area di memoria riservata: For j = 97 To 106 Write #t, j As Byte Next fl = Open "/percorso/del/file" For Write Create ' Spostiamo il puntatore interno al terzo byte dell'area di memoria riservata... Seek #fl, 2 ' ...e scriviamo soltanto quattro byte, cominciando dal terzo, ' dell'area di memoria riservata puntata dalla variabile di tipo "Puntatore": Write #fl, p, 4 End