Formattare il testo da mostrare in console o in terminale

Da Gambas-it.org - Wikipedia.

Per mostrare in console o in terminale un testo formattato con campo riservato di caratteri per una lunghezza totale specificata, è possibile utilizzare alcune modalità.

Senza usare funzioni all'uopo espressamente dedicate alla formattazione

Mostriamo qualche esempio:

Public Sub Main()
 
 Dim lun As Byte = 30
 Dim s1, s2 As String
 
 s1 = "abcde fghil"
 s2 = "abcde"
 
 Print s1 & Space(lun - Len(s1)) & "mnopqrs"
 Print s2 & Space(lun - Len(s2)) & "mnopqrs"
  
End

oppure anche:

Public Sub Main()
 
 Dim lun As Byte = 30
 Dim s1, s2 As String
 
 s1 = "abcde fghil"
 s2 = "abcde"
 
 Print s1 & String(lun - Len(s1), ".") & "mnopqrs"
 Print s2 & String(lun - Len(s2), ".") & "mnopqrs"
  
End


Uso delle funzioni "String.PadLeft()" e "String.PadRight()" attivando il Componente gb.util

Attivando il Componente gb.util sarà possibile utilizzare le funzioni "String.PadLeft()" e "String.PadRight()".
Esse restituiscono con la funzione "String.PadLeft()" una nuova stringa che allinea a sinistra i caratteri nella stringa originale aggiungendoli a destra, ovvero con la funzione "String.PadRight()" che allinea a destra i caratteri nella stringa originale aggiungendoli a sinistra, in entrambi i casi con uno schema di stringa specificato, per una lunghezza totale specificata.

Mostriamo un esempio:

Public Sub Main()
 
 Print String.PadRight("abcde fghil", 20, ".") & "mnopqrs"
 Print String.PadRight("abcde", 20, ".") & "mnopqrs"
  
End


Uso della funzione esterna "printf()" di C

Usando la funzione "printf()" della libreria esterna "libc.so.6", ponendo nel suo primo argomento un numero innanzi a sinistra del simbolo della formattazione, il valore verrà stampato in Terminale/console ad n caratteri dalla prima posizione disponibile a sinistra, occupando così n posizioni vuote alla sua sinistra.
Ponendo un segno meno dinnanzi a detto numero, il valore verrà stampato ad n caratteri dalla prima posizione disponibile a destra, occupando così n posizioni vuote alla sua destra.

Mostriamo un esempio:

' int printf (const char *__restrict __format, ...)
' Write formatted output to stdout.
Private Extern printf(__format As String, testo As String, duepunti As String, num1 As Integer, num2 As Integer, num3 As Integer) As Integer In "libc:6"


Public Sub Main()
 
 printf("%-8s%1s%6d%7d%7d\n", "Primo", ":", 1000, 10, 1)
 printf("%-8s%1s%6d%7d%7d\n", "Secondo", ":", 20, 2000, 200)
 printf("%-8s%1s%6d%7d%7d", "Terzo", ":", 300, 3, 30)
 
End