Differenze tra le versioni di "Conoscere in tempo reale il file-device "pts" dell'ultimo Terminale appena aperto"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
− | Per conoscere in tempo reale il file-device "pts" dell'ultimo Terminale appena aperto, ci serviremo di un ciclo: | + | 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() | '''Public''' Sub Main() | ||
− | |||
Dim b As Byte | Dim b As Byte | ||
− | Dim | + | Dim pts As String |
− | + | With tempus = New Timer As "Tempus" | |
− | + | .Delay = 10 | |
− | + | .Start | |
− | + | End With | |
− | |||
− | |||
− | <FONT Color=gray>' '' | + | <FONT Color=gray>' ''Verifica quanti file-device ci sono nella cartella "/dev/pts":''</font> |
− | + | b = Dir("/dev/pts").Count | |
+ | 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'' | ||
+ | ' ''file-device 'pts' presente nella cartella '/dev/pts/' all'avvio del programma:''</font> | ||
+ | For Each pts In Dir("/dev/pts") | ||
+ | Print pts, | ||
+ | ss.Push(pts) | ||
+ | Next | ||
+ | Write "\n\n" | ||
+ | |||
+ | '''End''' | ||
− | |||
+ | '''Public''' Sub Tempus_Timer() <FONT Color=gray>' ''Consente di verificare se un Terminale sia stato aperto.''</font> | ||
+ | |||
+ | Dim pts As String | ||
+ | Dim fl As File | ||
+ | |||
+ | <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> | ||
+ | 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) | ||
<FONT Color=gray>' ''Scriviamo qualcosa nel Terminale che è stato appena aperto:''</font> | <FONT Color=gray>' ''Scriviamo qualcosa nel Terminale che è stato appena aperto:''</font> | ||
− | + | fl = Open "/dev/pts" &/ pts For Write | |
+ | Write #fl, "Questo è\nil primo testo.\n" | ||
+ | Sleep 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''' | '''End''' |
Versione delle 19:31, 24 giu 2017
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" Sleep 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