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...) |
|||
Riga 6: | Riga 6: | ||
<BR>sarà letta la sola intera prima stringa: ''Line Input legge'' . | <BR>sarà letta la sola intera prima stringa: ''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''" sarà presente il carattere esadecimale 0A, il quale a sua volta rappresenta appunto il carattere ''escape'' di "''ritorno a capo''". | <BR>Infatti, se esaminiamo il file con un editor esadecimale, noteremo che immediatamente dopo i byte che rappresentano i caratteri della parola "''legge''" sarà presente il carattere esadecimale 0A, il quale a sua volta rappresenta appunto il carattere ''escape'' di "''ritorno a capo''". | ||
+ | |||
+ | |||
+ | Esempio di lettura e scrittura in un file di testo con ''Line Input''. Poniamo il caso che nel file di testo vi siano queste righe composte dalle seguenti parole: | ||
+ | <BR>sale | ||
+ | <BR>pepe | ||
+ | <BR>pane | ||
+ | <BR>pasta | ||
+ | <BR>cacio | ||
+ | <BR>Andiamo a cambiare la seconda riga del file di testo con la parola: olio: | ||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Dim f As File | ||
+ | Dim s$, sss As String | ||
+ | Dim a As Byte | ||
+ | |||
+ | <FONT color=#006400>' ''Dichiaro quindi anche una variabile array di tipo stringa con numero elementi non definito.'' | ||
+ | ' ''Non lo definisco, poiché abbiamo ammesso che non conosco il numero esatto di righe'' | ||
+ | ' ''contenute dal file di testo:''</font> | ||
+ | Dim sArr$ As String[] | ||
+ | |||
+ | |||
+ | <FONT color=#006400>' ''apro il mio file di testo:''</font> | ||
+ | f = Open "/percorso_mio_file" For Input | ||
+ | |||
+ | <FONT color=#006400>' ''creo la variabile stringa array:''</font> | ||
+ | sArr$ = New String[] | ||
+ | |||
+ | <FONT color=#006400>' ''Vado a leggere tutte le righe del file:''</font> | ||
+ | While Not Eof(f) <FONT color=#006400>' ''compie il ciclo fin tanto che non è giunto alla fine del file''</font> | ||
+ | |||
+ | Line Input #f, s$ | ||
+ | |||
+ | <FONT color=#006400>' ''carico ogni nuova riga in un nuovo elemento della variabile array:''</font> | ||
+ | sArr$.Add(s$) | ||
+ | |||
+ | Wend | ||
+ | |||
+ | <FONT color=#006400>' ''chiudo il file aperto in modalità Input:''</font> | ||
+ | Close #f | ||
+ | |||
+ | <FONT color=#006400>' ''A questo punto del codice ho letto tutto il file di testo.''</font> | ||
+ | '----------------------------------------------------------------------- | ||
+ | |||
+ | <FONT color=#006400>' ''Passo quindi a trasformare il contenuto del file di testo.'' | ||
+ | ' ''In particolare, come era nella mia iniziale intenzione:'' | ||
+ | ' ''modificare la seconda riga con la parola: olio.'' | ||
+ | ' ''Ho bisogno di un ciclo per ricostruire riga dopo riga il nuovo file di testo.''</font> | ||
+ | For a = 0 To sArr$.Max | ||
+ | |||
+ | If a = 1 Then | ||
+ | <FONT color=#006400>' ''se sono giunto alla seconda riga (il conteggio inizia da zero !),'' | ||
+ | ' ''allora il contenuto del 2° elemento dell'indice'' | ||
+ | ' ''della variabile array di tipo stringa sarà: olio:''</font> | ||
+ | sArr$[a] = "Alì Babà" | ||
+ | Endif | ||
+ | |||
+ | <FONT color=#006400>' ''la variabile stringa "sss" è uguale alla precedente versione'' | ||
+ | ' ''di se stessa + la successiva riga + il carattere "riga a capo":''</font> | ||
+ | sss = sss & sArr$[a] & "\n" | ||
+ | |||
+ | Next | ||
+ | |||
+ | <FONT color=#006400>' ''vado a salvare il nuovo file di testo'' | ||
+ | ' ''(ora modificato nella sua 2^ riga):''</font> | ||
+ | File.Save("/home/ploppo/Scrivania/simia2", sss) | ||
+ | |||
+ | '''End''' |
Versione delle 15:57, 3 giu 2012
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 il file di testo è così strutturato:
Line Input legge
all'interno di un file.
sarà letta la sola intera prima stringa: 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" sarà presente il carattere esadecimale 0A, il quale a sua volta rappresenta appunto il carattere escape di "ritorno a capo".
Esempio di lettura e scrittura in un file di testo con Line Input. Poniamo il caso che nel file di testo vi siano queste righe composte dalle seguenti parole:
sale
pepe
pane
pasta
cacio
Andiamo a cambiare la seconda riga del file di testo con la parola: olio:
Public Sub Button1_Click() Dim f As File Dim s$, sss As String Dim a As Byte ' Dichiaro quindi anche una variabile array di tipo stringa con numero elementi non definito. ' Non lo definisco, poiché abbiamo ammesso che non conosco il numero esatto di righe ' contenute dal file di testo: Dim sArr$ As String[] ' apro il mio file di testo: f = Open "/percorso_mio_file" For Input ' creo la variabile stringa array: sArr$ = New String[] ' Vado a leggere tutte le righe del file: While Not Eof(f) ' compie il ciclo fin tanto che non è giunto alla fine del file Line Input #f, s$ ' carico ogni nuova riga in un nuovo elemento della variabile array: sArr$.Add(s$) Wend ' chiudo il file aperto in modalità Input: Close #f ' A questo punto del codice ho letto tutto il file di testo.
'-----------------------------------------------------------------------
' Passo quindi a trasformare il contenuto del file di testo. ' In particolare, come era nella mia iniziale intenzione: ' modificare la seconda riga con la parola: olio. ' Ho bisogno di un ciclo per ricostruire riga dopo riga il nuovo file di testo. For a = 0 To sArr$.Max If a = 1 Then ' se sono giunto alla seconda riga (il conteggio inizia da zero !), ' allora il contenuto del 2° elemento dell'indice ' della variabile array di tipo stringa sarà: olio: sArr$[a] = "Alì Babà" Endif ' la variabile stringa "sss" è uguale alla precedente versione ' di se stessa + la successiva riga + il carattere "riga a capo": sss = sss & sArr$[a] & "\n" Next ' vado a salvare il nuovo file di testo ' (ora modificato nella sua 2^ riga): File.Save("/home/ploppo/Scrivania/simia2", sss) End