program testlist;
{programma che usa le unit listadt e entryobj}
uses entryobj,listadt;

var
  mydir:list;
  unnome:chiave;
  x:entry;
  success:boolean;

begin
  {legge un elenco}
  mydir.init;
  mydir.readlist;
  writeln('Ci sono ',mydir.conta:1,' nomi nell''elenco.');
  writeln;

  {inserisce un nuovo elemento alla fine}
  writeln('Nuovo nome e un numero: ');
  x.leggientry(input,'');
  mydir.insert(x,success);
  writeln('Ci sono ',mydir.conta:1,' nomi nell''elenco.');

  {cambia un numero di telefono}
  x.init('Sam',5507);
  writeln('Nuovo numero per ',x.getname,': 5507.');
  mydir.replace(x,success);
  if not success then writeln('Aggiornamento non effettuato.');
  writeln;

  {cerca il numero di una persona}
  write('Trova il numero di: ');
  readln(unnome);
  x.init(unnome,0);
  mydir.getentry(x,success);
  if success then x.displayentry
             else writeln('Nome non trovato.');

  {stampa l'elenco}
  writeln;
  mydir.displaylist
end.