Differenze tra le versioni di "Line Input"
Riga 2: | Riga 2: | ||
Ovviamente, se si ponesse la funzione ''Seek'' (prima dell'istruzione ''Line Input''), si andrebbe a leggere dal byte puntato da ''Seek'' sino al primo dato avente valore &h0A. | Ovviamente, se si ponesse la funzione ''Seek'' (prima dell'istruzione ''Line Input''), si andrebbe a leggere dal byte puntato da ''Seek'' sino al primo dato avente valore &h0A. | ||
− | |||
===Esempio di lettura con ''Line Input''=== | ===Esempio di lettura con ''Line Input''=== | ||
Riga 36: | Riga 35: | ||
fl = Open "<FONT Color=gray>''/percorso/del/file''</font>" For Input | fl = Open "<FONT Color=gray>''/percorso/del/file''</font>" For Input | ||
− | While Not Eof(fl) | + | While Not Eof(fl) <FONT color=gray>' ''Fin tanto che non si è giunti alla fine dei dati del file...''</font> |
<FONT color=B22222>Line Input</font> #fl, s <FONT color=gray>' ''...legge un'intera riga''</font> | <FONT color=B22222>Line Input</font> #fl, s <FONT color=gray>' ''...legge un'intera riga''</font> | ||
Print s | Print s |
Versione delle 09:32, 9 gen 2022
Line Input legge all'interno di un file di testo un'intera riga di caratteri non interrotta da un carattere non stampabile di "ritorno a capo " (ossia un byte avente valore &h0A - Line feed character). Quindi la riga sarà letta tutta quanta fino al carattere non stampabile di ritorno a capo.
Ovviamente, se si ponesse la funzione Seek (prima dell'istruzione Line Input), si andrebbe a leggere dal byte puntato da Seek sino al primo dato avente valore &h0A.
Esempio di lettura con Line Input
Se per esempio il file di testo è così strutturato con due righe:
Line Input legge all'interno di un file.
ed andiamo a leggere con Line Input
Public Sub Main() Dim fl As File Dim s As String fl = Open "/percorso/del/file" For Input Line Input #fl, s Print s fl.Close End
sarà letta la sola intera prima riga del file di testo: Line Input legge .
Infatti, se esaminiamo il file con un editor esadecimale, noteremo che immediatamente dopo i byte, che rappresentano i caratteri della parola "legge", è presente il carattere non stampabile esadecimale 0A (Line feed character), il quale rappresenta appunto il carattere escape di "ritorno a capo".
Esempio di lettura dell'intero file
Volendo, invece, leggere tutte le righe del file di testo, useremo ovviamente un ciclo, verificando mediante la funzione nativa "Eof()" se si è giunti alla fine del file:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/percorso/del/file" For Input While Not Eof(fl) ' Fin tanto che non si è giunti alla fine dei dati del file... Line Input #fl, s ' ...legge un'intera riga Print s Wend fl.Close End
La verifica potrà avvenire anche usando la Proprietà ".EndOfFile" della Classe File:
While Not fl.EndOfFile ...etc...