Bars1992, оптимизация с файлом - это хорошо, но вот по коду:
1) У меня
Код:
j := Pos(':', str);
if j > 0 then
Это сделано для защиты от "дурака"

Ведь никто не гарантирует наличия ":". Всякое в жизни бывает, тем более файл текстовый.
2) в данной задаче не очень критично, однако твое трехкратное использоване функции POS "не выгодно". Все-таки ряд вычислений проще сделать 1 раз и запомнить результат, чем 3 раза делать одно и то же

3) У тебя
Код:
login:=copy(s,0,pos(':',s)-1);
И читают как бЭ с первого символа строки
