program s_tabulka;

uses
  crt;

type
  TPolozka = record
    cislo: integer;
    nazev: string[10];
    pocet: byte;
  end;

const
  MAX = 4;

var
  f: text;
  p: array[1..MAX] of TPolozka;
  i: integer;


procedure NactiPolozku(var pol: TPolozka);
begin
  clrscr;
  with pol do begin
    write('Zadejte cislo polozky: '); readln(cislo);
    write('Zadejte nazev polozky: '); readln(nazev);
    write('Zadejte pocet:         '); readln(pocet);
  end;
end;

function Zarovnej(s: string; na_delku: byte): string;
var
  j, delka: byte;
begin
  delka := length(s);
  if delka > na_delku then Delete(s, na_delku + 1, delka - na_delku)
  else if delka < na_delku then
    for j := delka+1 to na_delku do s := s + ' ';
  Zarovnej := s;
end;


begin
  assign(f, 'tabulka.txt');
  rewrite(f);

  for i := 1 to MAX do
    NactiPolozku(p[i]);

  clrscr;
  writeln(f, 'Cislo Nazev       Pocet');
  writeln(   'Cislo Nazev       Pocet');
  writeln(f, '~~~~~~~~~~~~~~~~~~~~~~~');
  writeln(   '~~~~~~~~~~~~~~~~~~~~~~~');

  for i := 1 to MAX do
    with p[i] do begin
      writeln(f, cislo:4, '  ', Zarovnej(nazev, 10), '  ', pocet:3);
      writeln(   cislo:4, '  ', Zarovnej(nazev, 10), '  ', pocet:3);
    end;

  close(f);
  readln;
end.