Differenze tra le versioni di "Line Input"
(Nuova pagina: '''Line Input''' legge all'interno di un file di testo un'intera riga di caratteri non interrotta da un carattere di "''ritorno a capo''" (''\n'' o anche ''chr(10)'' ). Se per esempio...) |
|||
(25 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | ''' | + | '''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 <SPAN style="text-decoration:underline">fino</span> al carattere non stampabile di ''ritorno a capo''. |
− | Se per esempio il file di testo è così strutturato: | + | |
− | + | ===Esempio di lettura con "Line Input"=== | |
− | + | Se per esempio il file di testo è così strutturato con due righe: | |
− | < | + | ''Line Input legge'' |
− | <BR>Infatti, se esaminiamo il file con un editor esadecimale, noteremo che immediatamente dopo i byte che rappresentano i caratteri della parola "''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 "<FONT Color=darkgreen>''/percorso/del/file''</font>" For Input | ||
+ | |||
+ | <FONT color=#B22222>Line Input</font> #fl, s | ||
+ | |||
+ | Print s | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | sarà letta la sola intera prima riga del file di testo: ''Line Input legge'' . | ||
+ | <BR>Infatti, se esaminiamo il file con un editor esadecimale, noteremo che immediatamente dopo i byte, che rappresentano i caratteri della parola "''legge'' ", è presente il valore esadecimale <FONT color=red>0A</font> (''Line feed character'' ), il quale rappresenta appunto il carattere non stampabile ''escape'' di ''ritorno a capo'' ("\n"). | ||
+ | |||
+ | ====Uso dell'istruzione "SeeK"==== | ||
+ | Ovviamente, se si ponesse l'istruzione "Seek" (prima dell'istruzione "Line Input"), si leggerebbe dal byte puntato da "Seek" sino al primo dato avente valore &h0A ("\n"). | ||
+ | |||
+ | |||
+ | ===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 "<FONT Color=darkgreen>''/percorso/del/file''</font>" For Input | ||
+ | |||
+ | 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 fino al carattere escape di "nuova riga a capo"''</font> | ||
+ | Print s | ||
+ | Wend | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | La verifica potrà avvenire anche usando la Proprietà ".EndOfFile" della Classe ''File'': | ||
+ | While Not <FONT color=B22222>fl.EndOfFile</font> | ||
+ | ...etc... |
Versione attuale delle 07:45, 29 ott 2023
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 fino al carattere non stampabile di ritorno a capo.
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 valore esadecimale 0A (Line feed character ), il quale rappresenta appunto il carattere non stampabile escape di ritorno a capo ("\n").
Uso dell'istruzione "SeeK"
Ovviamente, se si ponesse l'istruzione "Seek" (prima dell'istruzione "Line Input"), si leggerebbe dal byte puntato da "Seek" sino al primo dato avente valore &h0A ("\n").
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 fino al carattere escape di "nuova riga a capo" Print s Wend fl.Close End
La verifica potrà avvenire anche usando la Proprietà ".EndOfFile" della Classe File:
While Not fl.EndOfFile ...etc...