Programma di esempio TXTFORM.PRT |
; TXTFORM
;
; Programma per Proteus
;
; (C) 1998-2003 Simone Zanella Productions
;
; Formattatore di testo.
;
; Il testo č formattato in linee di non pių di MaxLength caratteri;
; dopo ogni punto ('.'), viene iniziata una nuova riga.
FUNCTION ONSTART()
_MaxLength = 60
_Line = ""
IF STREQ(ARGV(3), "..")
CONSOLELN "Sintassi: " ARGV(1) " " ARGV(2) " sorgente destinazione"
CONSOLELN ""
CONSOLELN "Scopo: formatta un testo in righe di " \
PUB(MaxLength) " caratteri."
ABORT 0
FI
RETURN
TKH = TOKNEW(L, " ")
; Preleva il numero di token sulla linea
NTK = TOKNUM(TKH)
FOR CurTok = 1 TO NTK
Word = TOKGET(TKH, CurTok)
CurLen = STRLEN(Line)
; L'aggiunta della parola eccederebbe la lunghezza della riga;
; stampa la linea e mette la parola all'inizio della prossima riga
IF GT(ADD(CurLen, STRLEN(Word)), MaxLength)
PRINTLN LTRIM(Line, " ")
Line = Word
ELSE
Line = Line " " Word
FI
; Punto: va alla prossima riga
IF STREQ(RIGHT(Word, 1), ".")
PRINTLN LTRIM(Line, " ")
Line = ""
FI
NEXT
TOKFREE(TKH)
IF AND(EOF, ISNOTEMPTY(Line))
PRINTLN Line
FI