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.
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | 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 | + | 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'' ). | 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'' ). | ||
− | |||
− | |||
− | |||
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> | ||
− | |||
− | + | Public Sub Main() | |
Dim fl As File | Dim fl As File | ||
− | |||
Dim i As Integer | Dim i As Integer | ||
− | fl = Open "<FONT Color= | + | fl = Open "<FONT Color=darkgreen>''/percorso/del/file/da/aprire''</font>" For Read |
− | + | Repeat | |
− | Read #fl, | + | Read #fl, i |
− | + | If i == VALORE Then | |
− | + | Print "Il valore è stato trovato al byte di indice: ", Seek(fl) - SizeOf(gb.Integer) | |
− | + | fl.Close | |
− | + | Quit | |
− | |||
− | |||
− | |||
− | |||
Endif | Endif | ||
− | + | Seek #fl, Seek(fl) - (SizeOf(gb.Integer) - 1) | |
+ | Until Seek(fl) == Lof(fl) - (SizeOf(gb.Integer) - 1) | ||
+ | |||
+ | Print "Valore non presente nel file." | ||
fl.Close | fl.Close | ||
− | + | End |
Versione attuale delle 16:12, 1 lug 2024
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 ).
Private Const VALORE As Integer = valore-numerico-da-cercare (che occupi 4 byte) Public Sub Main() Dim fl As File Dim i As Integer fl = Open "/percorso/del/file/da/aprire" For Read Repeat Read #fl, i If i == VALORE Then Print "Il valore è stato trovato al byte di indice: ", Seek(fl) - SizeOf(gb.Integer) fl.Close Quit Endif Seek #fl, Seek(fl) - (SizeOf(gb.Integer) - 1) Until Seek(fl) == Lof(fl) - (SizeOf(gb.Integer) - 1) Print "Valore non presente nel file." fl.Close End