Non ho mai avuto a che fare con liste con così tanti elementi, ma io di solito la dichiaro così:
ListaOrdinata:=TStringList.Create; ListaOrdinata.Sorted:=True; ListaOrdinata.Duplicates:=dupIgnore;
try
ListaOrdinata.LoadFromFile('C:\Pippo.txt');
finally
PulisciLista(ListaOrdinata, tpFree);
end;
Naturalmente, vedi tu se "Duplicates" va bene impostato a "dupIgnore" o meno.
Quando carichi la lista, dovrebbe fare l'ordinamento alla lettura di ogni riga, con conseguente inserimento di essa nella lista, ma visto che la lista sul file di testo è già ordinata, questo non dovrebbe portare via troppo tempo all'esecuzione.
Ciao, Mario