Realizzare un programma che riceve in input un file di testo qualsiasi
(standard ASCII) più alcuni parametri e produce in output lo stesso
file di testo formattato secondo le seguenti specifiche.
-
Il testo viene allineato sia a destra che a sinistra ("giustificato")
su righe di lunghezza L, con L fornito in input dall'utente.
L'allineamento è ottenuto inserendo un numero di spazi opportuno
tra le parole del testo, in modo il più possibile uniforme.
-
L'interlinea e' di default 1; un'interlinea diverso (2,
3,
...) può essere specificato tramite l'opportuno comando di formattazione
(vedi punto successivo). Interlinea 2 richiede l'inserimento di una riga
bianca tra due righe di testo; interlinea 3 l'inserimento di 2 righe bianche,
e così via.
-
All'interno del testo possono apparire i seguenti comandi di formattazione:
-
\c TESTO \\c il TESTO deve
essere centrato;
-
\n TESTO \\n al TESTO non si
applica nessuna formattazione;
-
\l[n] TESTO \\l dove n è
un intero > 0 con o senza segno; l'interlinea in TESTO viene posto
uguale ad n oppure incrementato (+n) o decrementato (-n)
di n rispetto all'interlinea corrente;
-
[FACOLTATIVO] \i TESTO \\i lista
indentata: le frasi inizianti con '-' vengono fatte rientrare di 3 spazi
e fatte precedere da ' - '. Ad esempio:
-questo e' un testo di 3 righe, scritto per
mostrare un esempio
diventa (supponendo la lunghezza della riga sia fissata ad esempio
a 26 car.)
- questo e' un testo di
3 righe, scritto
per
mostrare un esempio
n.b. Questi comandi forzano un "a capo" nel testo formattato
(interruzione di riga) sia all'inizio (prima di TESTO)
che alla fine (dopo
TESTO). Ad esempio, il testo:
Questa e' una \cfrase\\c di prova per verificare
il comando di centratura.
diventa (supponendo la lunghezza della riga sia fissata ad esempio
a 26 car.)
Questa e' una
frase
di prova per verificare il
comando di centratura.
n.b.: Alla chiusura del comando viene ripristinato il relativo valore
di default (giustificato per i comandi relativi all'allineamento,
interlinea 1 per il comando \l)
-
Una riga nel testo originale completamente bianca provoca l'interruzione
della riga corrente e viene riportata inalterata nel testo formattato.
Ad esempio, il testo:
Questa e' una frase di prova.
A questa frase si applica la formattazione.
diventa (supponendo la lunghezza della riga sia fissata ad esempio
a 26 car.)
Questa e' una frase
di
prova.
A questa frase si applica
la formattazione.
-
All'interno del testo possono apparire inoltre i seguenti comandi sui
caratteri:
-
\M TESTO \\M tutti i caratteri di TESTO
diventano maiuscoli
-
\s TESTO \\s i caratteri di
TESTO
vengono separati da un carattere '_' (underscore); ad es.:
\sPROVA\\s ----> P_R_O_V_A
-
[FACOLTATIVO] \^ TESTO \\^ TESTO
viene sottolineato con il carattere ^; ad es.:
\^TESTO\\^ ----> TESTO
^^^^^
Per la sottolineatura viene inserita una nuova riga o utilizzata la
riga bianca successiva, se presente.
n.b.: I comandi sui caratteri possono apparire anche all'interno
del TESTO contenuto in un comando di formattazione o nel TESTO di un altro
comando sui caratteri (ad esempio: \M\sProva\\s\\M ---->
P_R_O_V_A).