Differenze tra le versioni di "Input"
(28 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | ''' | + | L'istruzione '''INPUT''' legge una stringa in un file di testo <SPAN style="text-decoration:underline">fino</span> all'interruzione dello spazio o al carattere di ''nuova linea ritorno a capo'' (&h0A, "\n") e immette quanto letto in una variabile di tipo Stringa. |
+ | <BR>Se non viene definito nessuno ''stream'', allora viene utilizzato lo standard input. | ||
− | Esempio. Poniamo di avere un file, creato con un editor di testo, contenente | + | Esempio. |
− | + | <BR>Poniamo di avere un file, creato con un editor di testo, contenente la seguente stringa di caratteri: ''gallo gatto ratto''. | |
− | ''' | + | <BR>Leggendo con "Input": |
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim s As String | ||
+ | |||
+ | fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input | ||
− | + | <FONT color=#B22222>Input</font> #fl, s | |
− | |||
− | + | fl.Close | |
− | Print | + | Print s |
− | + | End | |
− | sarà letta soltanto la | + | sarà letta soltanto la sottostringa "gallo", poiché "Input" leggerà la stringa fino al primo carattere dello spazio, e sarà inserita nella variabile "s". |
− | Con | + | ===Usare più variabili per volta=== |
− | ''' | + | Con "Input" possiamo inserire anche più variabili, ove caricare i valori (ossia le varie sottostringhe presenti nel file di testo e separate ciascuna dall'altra da uno spazio o da un carattere di "nuova riga"): |
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim s1, s2, s3 As String | ||
+ | |||
+ | fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input | ||
− | + | <FONT color=#B22222>Input</font> #fl, s1, s2, s3 | |
− | |||
− | + | fl.Close | |
− | Print | + | Print s1, s2, s3 |
− | + | End | |
− | saranno lette: gallo gatto ratto. | + | saranno lette: ''gallo gatto ratto'' e saranno poste rispettivamente nelle variabili "s1", "s2" e "s3". |
− | Volendo usare un ciclo | + | ===Usare un ciclo=== |
− | + | Volendo usare un ciclo "For...Next", si potrà, per leggere ogni sottostringa, usare invece ovviamente una sola variabile stringa: | |
+ | Public Sub Main() | ||
− | Dim | + | Dim fl As File |
− | Dim | + | Dim s As String |
− | Dim | + | Dim b As Byte |
− | + | fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input | |
− | |||
− | |||
− | + | For b = 0 to 2 | |
+ | <FONT color=#B22222>Input</font> #fl, s | ||
+ | Print s | ||
+ | Next | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
Avremo in console: | Avremo in console: | ||
<BR>gallo | <BR>gallo | ||
Riga 47: | Riga 64: | ||
<BR>ratto | <BR>ratto | ||
+ | Possiamo usare, per compiere il ciclo, ovviamente anche il ciclo "While...Wend" (o anche di altro tipo): | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim fl As File | ||
+ | Dim s As String | ||
+ | |||
+ | fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input | ||
+ | |||
+ | While Not Eof(fl) | ||
+ | <FONT color=#B22222>Input</font> #fl, s | ||
+ | Print s | ||
+ | Wend | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
− | Con | + | |
− | + | ===Usare l'istruzione "Seek"=== | |
+ | Con "Input" possiamo usare anche l'istruzione "Seek" per spostare il puntatore all'interno del file di testo: | ||
+ | Public Sub Main() | ||
− | Dim | + | Dim fl As File |
− | Dim | + | Dim s As String |
− | + | fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input | |
− | |||
− | + | Seek #fl, 3 | |
+ | <FONT color=#B22222>Input</font> #fl, s | ||
− | + | fl.Close | |
+ | |||
+ | Print s | ||
+ | |||
+ | End | ||
in console avremo: lo | in console avremo: lo | ||
− | La lettura anche con l'utilizzo | + | <BR>La lettura anche con l'utilizzo dell'istruzione "Seek" si arresterà al primo spazio, oppure al carattere ''ritorno a capo nuova riga'' ("\n"), che incontrerà nel file di testo. |
− | + | Con il seguente codice: | |
− | ''' | + | Public Sub Main() |
+ | |||
+ | Dim fl As File | ||
+ | Dim s As String | ||
+ | |||
+ | fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input | ||
+ | |||
+ | Seek #fl, 12 | ||
+ | <FONT color=#B22222>Input</font> #fl, s | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | Print s | ||
− | Dim | + | End |
− | Dim | + | avremo in console: ratto |
+ | |||
+ | |||
+ | ==Uso di INPUT per porre il programma in attesa sino alla pressione del tasto "Invio"== | ||
+ | L'istruzione "Input" può essere utile per porre il programma in attesa sino alla pressione del tasto "Invio" della tastiera da parte dell'utente. In tal caso il programma proseguirà nel processo del proprio codice, solo quando l'utente avrà premuto il tasto "Invio" della tastiera. | ||
+ | |||
+ | Esempio pratico: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim s As String | ||
+ | |||
+ | Print "In attesa della pressione del tasto \"Invio\" della tastiera......" | ||
+ | |||
+ | <FONT color=#B22222>Input</font> s | ||
+ | |||
+ | Print "E' stato premuto il tasto \"Invio\" della tastiera.\n" | ||
+ | |||
+ | End | ||
+ | |||
+ | ===Porre in attesa il programma con Input e inserire un carattere dalla tastiera=== | ||
+ | Posto in attesa il programma con l'istruzione "Input", e prima di premere il tasto "Invio" della tastiera per sbloccarlo, è possibile inserire in una variabile di tipo ''String'' uno o più caratteri dalla tastiera. | ||
+ | <BR>Al riguardo riprendiamo il codice precedente: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim s As String | ||
− | + | Print "Scrivere nella console/terminale uno o più carattteri mediante la tastiera e successivamente premere il tasto \"Invio\" della tastiera:" | |
− | |||
− | + | <FONT color=#B22222>Input</font> s | |
− | + | Print "Sono stati inseriti i seguenti caratteri: "; s | |
− | + | ||
+ | End |
Versione attuale delle 07:26, 29 ott 2023
L'istruzione INPUT legge una stringa in un file di testo fino all'interruzione dello spazio o al carattere di nuova linea ritorno a capo (&h0A, "\n") e immette quanto letto in una variabile di tipo Stringa.
Se non viene definito nessuno stream, allora viene utilizzato lo standard input.
Esempio.
Poniamo di avere un file, creato con un editor di testo, contenente la seguente stringa di caratteri: gallo gatto ratto.
Leggendo con "Input":
Public Sub Main() Dim fl As File Dim s As String fl = Open "/percorso/del/file/da/aprire" For Input Input #fl, s fl.Close Print s End
sarà letta soltanto la sottostringa "gallo", poiché "Input" leggerà la stringa fino al primo carattere dello spazio, e sarà inserita nella variabile "s".
Indice
Usare più variabili per volta
Con "Input" possiamo inserire anche più variabili, ove caricare i valori (ossia le varie sottostringhe presenti nel file di testo e separate ciascuna dall'altra da uno spazio o da un carattere di "nuova riga"):
Public Sub Main() Dim fl As File Dim s1, s2, s3 As String fl = Open "/percorso/del/file/da/aprire" For Input Input #fl, s1, s2, s3 fl.Close Print s1, s2, s3 End
saranno lette: gallo gatto ratto e saranno poste rispettivamente nelle variabili "s1", "s2" e "s3".
Usare un ciclo
Volendo usare un ciclo "For...Next", si potrà, per leggere ogni sottostringa, usare invece ovviamente una sola variabile stringa:
Public Sub Main() Dim fl As File Dim s As String Dim b As Byte fl = Open "/percorso/del/file/da/aprire" For Input For b = 0 to 2 Input #fl, s Print s Next fl.Close End
Avremo in console:
gallo
gatto
ratto
Possiamo usare, per compiere il ciclo, ovviamente anche il ciclo "While...Wend" (o anche di altro tipo):
Public Sub Main() Dim fl As File Dim s As String fl = Open "/percorso/del/file/da/aprire" For Input While Not Eof(fl) Input #fl, s Print s Wend fl.Close End
Usare l'istruzione "Seek"
Con "Input" possiamo usare anche l'istruzione "Seek" per spostare il puntatore all'interno del file di testo:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/percorso/del/file/da/aprire" For Input Seek #fl, 3 Input #fl, s fl.Close Print s End
in console avremo: lo
La lettura anche con l'utilizzo dell'istruzione "Seek" si arresterà al primo spazio, oppure al carattere ritorno a capo nuova riga ("\n"), che incontrerà nel file di testo.
Con il seguente codice:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/percorso/del/file/da/aprire" For Input Seek #fl, 12 Input #fl, s fl.Close Print s End
avremo in console: ratto
Uso di INPUT per porre il programma in attesa sino alla pressione del tasto "Invio"
L'istruzione "Input" può essere utile per porre il programma in attesa sino alla pressione del tasto "Invio" della tastiera da parte dell'utente. In tal caso il programma proseguirà nel processo del proprio codice, solo quando l'utente avrà premuto il tasto "Invio" della tastiera.
Esempio pratico:
Public Sub Main() Dim s As String Print "In attesa della pressione del tasto \"Invio\" della tastiera......" Input s Print "E' stato premuto il tasto \"Invio\" della tastiera.\n" End
Porre in attesa il programma con Input e inserire un carattere dalla tastiera
Posto in attesa il programma con l'istruzione "Input", e prima di premere il tasto "Invio" della tastiera per sbloccarlo, è possibile inserire in una variabile di tipo String uno o più caratteri dalla tastiera.
Al riguardo riprendiamo il codice precedente:
Public Sub Main() Dim s As String Print "Scrivere nella console/terminale uno o più carattteri mediante la tastiera e successivamente premere il tasto \"Invio\" della tastiera:" Input s Print "Sono stati inseriti i seguenti caratteri: "; s End