Formattare il testo da mostrare in console o in terminale
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