Differenze tra le versioni di "Scrivere in un file solo alcuni dati presenti in un'area riservata di memoria"
(6 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
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. | 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. | 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. | ||
Riga 6: | Riga 5: | ||
Per poter scrivere solo alcuni dati con il comando ''Write'', è necessario aggiungere un terzo elemento alla corrispondente riga di comando: | Per poter scrivere solo alcuni dati con il comando ''Write'', è necessario aggiungere un terzo elemento alla corrispondente riga di comando: | ||
Write #file, puntatore, <FONT color=#B22222><B>n</b></font> | Write #file, puntatore, <FONT color=#B22222><B>n</b></font> | ||
− | laddove <FONT color=#B22222>''n''</font> rappresenta la quantità di byte, presenti nella variabile ''puntatore'', che dovranno essere scritti nel file. | + | laddove <FONT color=#B22222>'''n'''</font> rappresenta la quantità di byte, presenti nella variabile ''puntatore'', che dovranno essere scritti nel file. <SUP>[[[#Note|Nota 1]]]</sup> |
Riga 14: | Riga 13: | ||
Dim fl As File | Dim fl As File | ||
Dim p As Pointer | Dim p As Pointer | ||
− | Dim | + | Dim st As Stream |
− | Dim | + | Dim b As Byte |
+ | <FONT color=gray>' ''Alloca un'area di memoria pari a dieci byte, che sarà puntata da una variabile di tipo "Puntatore":''</font> | ||
+ | p = Alloc(SizeOf(gb.Byte), 10) | ||
− | <FONT color=gray>' '' | + | <FONT color=gray>' ''Genera una variabile di tipo "Stream" dal "Puntatore", per poter scrivere nella variabile "Puntatore" medesima:''</font> |
− | + | st = Memory p For Write | |
− | |||
+ | <FONT color=gray>' ''Scrive mediante la variabile di tipo "Stream" dieci byte all'interno di quell'area di memoria riservata:''</font> | ||
+ | For b = 97 To 106 | ||
+ | Write #st, b As Byte | ||
+ | Next | ||
− | + | fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Create | |
− | |||
− | <FONT color=gray>' '' | + | <FONT color=gray>' ''Sposta il puntatore interno sul terzo byte dell'area di memoria riservata...''</font> |
− | + | Seek #st, 2 | |
− | |||
− | |||
+ | <FONT color=gray>' ''...e scrive soltanto quattro byte, cominciando dal terzo, dell'area di memoria riservata puntata dalla variabile di tipo "Puntatore":''</font> | ||
+ | Write #fl, p, <FONT color=#B22222><B>4</b></font> | ||
− | + | fl.Close | |
− | + | st.Close | |
− | + | Free(p) | |
− | |||
− | |||
− | |||
− | |||
− | |||
'''End''' | '''End''' | ||
+ | |||
+ | |||
+ | |||
+ | =Note= | ||
+ | [1] Vedere anche il seguente paragrafo: [[Write#Scrivere_in_un_file_i_dati_contenuti_in_un.27area_di_memoria_puntata_da_un_Puntatore|Scrivere in un file i dati contenuti in un'area di memoria puntata da un Puntatore]] |
Versione attuale delle 17:55, 19 mag 2023
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. [Nota 1]
Esempio:
Public Sub Main() Dim fl As File Dim p As Pointer Dim st As Stream Dim b As Byte ' Alloca un'area di memoria pari a dieci byte, che sarà puntata da una variabile di tipo "Puntatore": p = Alloc(SizeOf(gb.Byte), 10) ' Genera una variabile di tipo "Stream" dal "Puntatore", per poter scrivere nella variabile "Puntatore" medesima: st = Memory p For Write ' Scrive mediante la variabile di tipo "Stream" dieci byte all'interno di quell'area di memoria riservata: For b = 97 To 106 Write #st, b As Byte Next fl = Open "/percorso/del/file" For Create ' Sposta il puntatore interno sul terzo byte dell'area di memoria riservata... Seek #st, 2 ' ...e scrive soltanto quattro byte, cominciando dal terzo, dell'area di memoria riservata puntata dalla variabile di tipo "Puntatore": Write #fl, p, 4 fl.Close st.Close Free(p) End
Note
[1] Vedere anche il seguente paragrafo: Scrivere in un file i dati contenuti in un'area di memoria puntata da un Puntatore