Cercare un valore all'interno di un file aperto come un flusso di dati di tipo File
Da Gambas-it.org - Wikipedia.
Versione del 22 nov 2021 alle 18:56 di Vuott (Discussione | contributi)
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 costituito 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 "Il valore è stato trovato al byte di indice: ", Seek(fl) - SizeOf(gb.Integer) Break Endif Seek #fl, Seek(fl) - (SizeOf(gb.Integer) - 1) Endif Loop If Seek(fl) = Lof(fl) - 1 Then Print "Valore non presente nel file." fl.Close End