Differenze tra le versioni di "Conoscere in tempo reale il file-device "pts" dell'ultimo Terminale appena aperto"

Da Gambas-it.org - Wikipedia.
 
Riga 6: Riga 6:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim b As Byte
 
   Dim b As Byte
Riga 20: Riga 20:
 
   Print "Sono attualmente presenti "; b; " file-device nella cartella '/dev/pts':\n"
 
   Print "Sono attualmente presenti "; b; " file-device nella cartella '/dev/pts':\n"
 
    
 
    
  <FONT Color=gray>' ''Assegna ad ogni elemento della variabile array di tipo Stringa "ss" il nome di ciascun''
+
  <FONT Color=gray>' ''Assegna ad ogni elemento della variabile array di tipo Stringa "ss" il nome di ciascun file-device 'pts' presente nella cartella '/dev/pts/' all'avvio del programma:''</font>
' ''file-device 'pts' presente nella cartella '/dev/pts/' all'avvio del programma:''</font>
 
 
   For Each pts In Dir("/dev/pts")
 
   For Each pts In Dir("/dev/pts")
 
     Print pts,
 
     Print pts,
Riga 28: Riga 27:
 
   Write "\n\n"
 
   Write "\n\n"
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub Tempus_Timer()  <FONT Color=gray>' ''Consente di verificare se un Terminale sia stato aperto.''</font>
+
   
 +
Public Sub Tempus_Timer()  <FONT Color=gray>' ''Consente di verificare se un Terminale sia stato aperto.''</font>
 
    
 
    
 
   Dim pts As String
 
   Dim pts As String
 
   Dim fl As File
 
   Dim fl As File
 
    
 
    
  <FONT Color=gray>' ''Effettua la verifica di quale file-device corrisponde a quello del Terminale appena aperto:''
+
  <FONT Color=gray>' ''Effettua la verifica di quale file-device corrisponde a quello del Terminale appena aperto: il file-device nuovo, non presente nella variabile vettore di tipo stringa, è quello del terminale:''</font>
' ''il file-device nuovo, non presente nella variabile vettore di tipo stringa, è quello del terminale:''</font>
 
 
   For Each pts In Dir("/dev/pts")
 
   For Each pts In Dir("/dev/pts")
 
     If Not ss.Exist(pts) Then
 
     If Not ss.Exist(pts) Then
Riga 56: Riga 55:
 
   Next
 
   Next
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 13:15, 1 lug 2024

Per conoscere in tempo reale il file-device "pts" dell'ultimo Terminale appena aperto, ci serviremo di un ciclo oppure, ancora meglio, dell'oggetto Timer.

Vediamo un possibile esempio pratico:

Private tempus As Timer
Private ss As New String[]


Public Sub Main()

  Dim b As Byte
  Dim pts As String
 
  With tempus = New Timer As "Tempus"
    .Delay = 10
    .Start
  End With
 
' Verifica quanti file-device ci sono nella cartella "/dev/pts":
  b = Dir("/dev/pts").Count
  Print "Sono attualmente presenti "; b; " file-device nella cartella '/dev/pts':\n"
  
' Assegna ad ogni elemento della variabile array di tipo Stringa "ss" il nome di ciascun file-device 'pts' presente nella cartella '/dev/pts/' all'avvio del programma:
  For Each pts In Dir("/dev/pts")
    Print pts,
    ss.Push(pts)
  Next
  Write "\n\n"
  
End


Public Sub Tempus_Timer()   ' Consente di verificare se un Terminale sia stato aperto.
 
  Dim pts As String
  Dim fl As File
 
' Effettua la verifica di quale file-device corrisponde a quello del Terminale appena aperto: il file-device nuovo, non presente nella variabile vettore di tipo stringa, è quello del terminale:
  For Each pts In Dir("/dev/pts")
    If Not ss.Exist(pts) Then
      Print "Aperto Terminale associato al file '/dev/pts/"; pts; "'"
      ss.Push(pts)
' Scriviamo qualcosa nel Terminale che è stato appena aperto:
      fl = Open "/dev/pts" &/ pts For Write
      Write #fl, "Questo è\nil primo testo.\n"
      Wait 0.1
      Write #fl, "Questo è\nil secondo testo.\n"
      fl.Close
    Endif
  Next
  
  ss.Remove(0, ss.Count)
  
  For Each pts In Dir("/dev/pts")
    ss.Push(pts)
  Next
  
End