Differenze tra le versioni di "Cercare un valore all'interno di un file aperto come un flusso di dati di tipo File"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Il caso è quello in cui, avendo aperto un file in "Lettura" come tipo di dati "File" con l'istruzione "Open", si intende cercare un valore costituisco da uno o anche più byt...") |
|||
Riga 6: | Riga 6: | ||
<BR> - il primo byte a sinistra del valore da cercare (pertanto se - ad esempio - il valore da cercare, <SPAN Style="text-decoration:underline">come memorizzato in little-endian nel file</span>, è: "04 03 02 01", a questa seconda Costante andrà assegnato il valore byte 04). | <BR> - il primo byte a sinistra del valore da cercare (pertanto se - ad esempio - il valore da cercare, <SPAN Style="text-decoration:underline">come memorizzato in little-endian nel file</span>, è: "04 03 02 01", a questa seconda Costante andrà assegnato il valore byte 04). | ||
Private Const VALORE As Integer = <FONT Color=gray>''valore-numerico-da-cercare'' (che occupi 4 byte)</font> | Private Const VALORE As Integer = <FONT Color=gray>''valore-numerico-da-cercare'' (che occupi 4 byte)</font> | ||
− | Private Const | + | Private Const PRIMOBYTE As Byte = <FONT Color=gray>''il-primo-byte-a sinistra-del-valore-numerico-da-cercare''</font> |
Riga 19: | Riga 19: | ||
Do | Do | ||
Read #fl, b | Read #fl, b | ||
− | If b == | + | If b == PRIMOBYTE Then |
Seek #fl, Seek(fl) - 1 | Seek #fl, Seek(fl) - 1 | ||
Read #fl, i | Read #fl, i |
Versione delle 18:31, 22 nov 2021
Il caso è quello in cui, avendo aperto un file in "Lettura" come tipo di dati "File" con l'istruzione "Open", si intende cercare un valore costituisco da uno o anche più byte.
Mostriamo un possibile esempio in cui si cerca all'interno del flusso di dati di tipo "File" un valore formato da 4 byte (Tipo Integer ).
Nelle due Costanti utilizzate vanno inseriti:
- il valore numerico da cercare
- il primo byte a sinistra del valore da cercare (pertanto se - ad esempio - il valore da cercare, come memorizzato in little-endian nel file, è: "04 03 02 01", a questa seconda Costante andrà assegnato il valore byte 04).
Private Const VALORE As Integer = valore-numerico-da-cercare (che occupi 4 byte) Private Const PRIMOBYTE As Byte = il-primo-byte-a sinistra-del-valore-numerico-da-cercare Public Sub Main() Dim fl As File Dim b As Byte Dim i As Integer fl = Open "/percorso/del/file/da/aprire" For Read Do Read #fl, b If b == PRIMOBYTE Then Seek #fl, Seek(fl) - 1 Read #fl, i If i == VALORE Then Print "Indice: ", Seek(fl) Break Endif Seek #fl, Seek(fl) - (SizeOf(gb.Integer) - 1) Endif Loop fl.Close End