Conoscere il numero di linee e di colonne costituenti la corrente dimensione di un terminale o console

Da Gambas-it.org - Wikipedia.
Versione del 11 mag 2024 alle 15:34 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per conoscere il numero di linee e di colonne costituenti la corrente dimensione di un terminale o della console dell'IDE di Gambas, potremo utilizzare la funzione "ioctl()" della libreria C.
Modificando la dimensione del terminale o della console, i valori restituiti attinenti alle colonne e alle righe cambieranno.

Library "libc:6"

Public Struct winsize
  ws_row As Short
  ws_col As Short
  ws_xpixel As Short
  ws_ypixel As Short
End Struct

Private Const STDOUT_FILENO As Integer = 1
Private Const TIOCGWINSZ As Integer = &5413

' int ioctl (int __fd, unsigned long int __request, ...)
' Perform the I/O control operation specified by REQUEST on FD.
Private Extern ioctl(__fd As Integer, __request As Long, w As Winsize) As Integer 


Public Sub Main()

 Dim ws As New Winsize

 ioctl(STDOUT_FILENO, TIOCGWINSZ, ws)

 Print "Linee:   "; ws.ws_row
 Print "Colonne: "; ws.ws_col

End