Differenze tra le versioni di "Input"

Da Gambas-it.org - Wikipedia.
Riga 7: Riga 7:
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
   Dim f As File
+
   Dim fl As File
   Dim a$ As String
+
   Dim s As String
 
   
 
   
   f = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
+
   fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
 
   
 
   
   <FONT color=#B22222>Input</font> #f, a$
+
   <FONT color=#B22222>Input</font> #fl, s
 
   
 
   
   Print a$
+
  fl.Close
 +
 +
   Print s
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 23: Riga 25:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim f As File
+
   Dim fl As File
 
   Dim a$, b$, c$ As String
 
   Dim a$, b$, c$ As String
 
    
 
    
   f = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
+
   fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
 +
 +
  <FONT color=#B22222>Input</font> #fl, a$, b$, c$
 
   
 
   
   <FONT color=#B22222>Input</font> #f, a$, b$, c$
+
   fl.Close
 
   
 
   
 
   Print a$, b$, c$
 
   Print a$, b$, c$
Riga 36: Riga 40:
  
  
Volendo usare un ciclo ''For'', si potrà, per leggere ogni sottostringa, usare invece ovviamente una sola variabile stringa:
+
Volendo usare un ciclo "For", si potrà, per leggere ogni sottostringa, usare invece ovviamente una sola variabile stringa:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim f As File
+
   Dim fl As File
   Dim a$ As String
+
   Dim s As String
   Dim j As Byte
+
   Dim b As Byte
 
   
 
   
   f = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
+
   fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
 
   
 
   
   For j = 0 to 2
+
   For b = 0 to 2
     <FONT color=#B22222>Input</font> #f, a$
+
     <FONT color=#B22222>Input</font> #fl, s
     Print a$
+
     Print s
 
   Next
 
   Next
 +
 +
  fl.Close
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 57: Riga 63:
  
  
Possiamo usare, per compiere il ciclo, ovviamente anche il ciclo "''While...Wend''":
+
Possiamo usare, per compiere il ciclo, ovviamente anche il ciclo "While...Wend":
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim f As File
+
   Dim fl As File
   Dim a$ As String
+
   Dim s As String
 +
 +
  fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
 
   
 
   
   f = 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
 
   
 
   
  While Not Eof(f)
+
  fl.Close
    <FONT color=#B22222>Input</font> #f, a$
 
    Print a$
 
  Wend
 
 
   
 
   
 
  '''End'''
 
  '''End'''
  
  
 
+
Con ''Input'' possiamo usare anche la funzione "Seek" per spostare il puntatore all'interno del File di testo:
Con ''Input'' possiamo usare anche la funzione ''Seek'' per spostare il puntatore all'interno del File di testo:
 
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim f As File
+
   Dim fl As File
   Dim a$ As String
+
   Dim s As String
 +
 +
  fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
 
   
 
   
   f = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
+
   Seek #fl, 3
 +
  <FONT color=#B22222>Input</font> #fl, s
 
   
 
   
   Seek #f, 3
+
   fl.Close
  <FONT color=#B22222>Input</font> #f, a$
 
 
   
 
   
  Print a$
+
  Print s
 
   
 
   
 
  '''End'''
 
  '''End'''
 
in console avremo:  lo
 
in console avremo:  lo
 
<BR>La lettura anche con l'utilizzo della funzione ''Seek'' si arresterà al primo spazio, oppure al carattere ''ritorno a capo nuova riga'', che incontrerà nel file di testo.
 
<BR>La lettura anche con l'utilizzo della funzione ''Seek'' si arresterà al primo spazio, oppure al carattere ''ritorno a capo nuova riga'', che incontrerà nel file di testo.
 
  
 
Con il seguente codice:
 
Con il seguente codice:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
   Dim f As File
+
   Dim fl As File
   Dim a$ As String
+
   Dim s As String
 
    
 
    
   f = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
+
   fl = Open "<FONT color=gray>''/percorso/del/file/da/aprire''</font>" For Input
 
   
 
   
   Seek #f, 12
+
   Seek #fl, 12
   <FONT color=#B22222>Input</font> #f, a$
+
   <FONT color=#B22222>Input</font> #fl, s
 
    
 
    
   Print a$
+
  fl.Close
 +
 +
   Print s
 
   
 
   
 
  '''End'''
 
  '''End'''
Riga 109: Riga 119:
  
  
===Uso di INPUT per porre il programma in attesa sino alla pressione del tasto "Invio"===
+
==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.
 
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.
  

Versione delle 17:00, 2 set 2022

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), e le immette ciascuna in una variabile.
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 Button1_Click()

 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 "a$".


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 a$, b$, c$ As String
 
 fl = Open "/percorso/del/file/da/aprire" For Input

 Input #fl, a$, b$, c$

 fl.Close

 Print a$, b$, c$

End

saranno lette: gallo gatto ratto, che saranno poste rispettivamente nelle variabili a$, b$, c$.


Volendo usare un ciclo "For", 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":

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


Con Input possiamo usare anche la funzione "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 della funzione Seek si arresterà al primo spazio, oppure al carattere ritorno a capo nuova riga, 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."
 
End