program TextStat;

uses Crt;

var t: char;
    i: integer;
    s: array[1..26] of integer;
    sum: longint;
    f: file of char;
		p: single;
		op: single;

begin
	ClrScr;
	for i:=1 to 26 do s[i]:=0;
	assign(f,ParamStr(1));
	{$I-}
	Reset(f);
	if IOResult<>0 then Halt;
	{$I+}
	sum := 0;
	op := 0;
	while NOT Eof(f) do begin
		Read(f,t);
		if (Ord(Upcase(t))>64) AND (Ord(Upcase(t))<91) then Inc(s[Ord(Upcase(t))-64]);
		Inc(sum);
		p := (sum/FileSize(f))*100;
		if (p>op+1) OR (p=100) then begin
      GotoXY(1,1);
      for i:=1 to 26 do WriteLn(Chr(i+64),': ',s[i]:4,' (',(s[i]/sum)*100:9:5,'%)');
      WriteLn('Chars analyzed: ',sum:5);
			WriteLn('Percentage completed: ',p:9:3);
      op := p;
    end;
  end;
	Close(f);
	ReadKey;
end.