{ File: frase.pas }

program Frase;
{ Converte una frase letta da file in maiuscolo. }

const
  MAXLUNGHEZZA          = 1000;
type
  TipoLunghezzaFile = 0..MAXLUNGHEZZA;

var
  lunghezza : TipoLunghezzaFile;
  ch        : char;
  file_testo : text;

  procedure ConvertiInMaiuscole (var car: char);
  begin
    if ('a' <= car) and (car <= 'z') then { car e' una lettera minuscola }
      car := chr(ord(car) - ord('a') + ord('A'))
  end;  { ConvertiInMaiuscole }

begin { Frase }
  assign(file_testo, 'TESTO.TXT');
  reset(file_testo);
  lunghezza := 0;
  read(file_testo, ch);
  { mentre il file non e' finito e non abbiamo letto '.' }
  while not eof(file_testo) and (ch <> '.') do
  begin
    lunghezza := lunghezza - 1;
    ConvertiInMaiuscole(ch);
    write(ch);
    read(file_testo, ch)
  end;
  writeln;
  writeln('la frase e'' lunga', lunghezza:3, ' caratteri')
end. { Frase }