Доброго времени суток уважаемые

Пишу ICQ бота... Вообщем кусок кода:
Код:
var
icq: cardinal;
i: integer;
Find:string; // Искомая строка
posit : Integer;
S: String;
KeyCode: integer;
begin
KeyCode:= 0;
Key := Copy(Msg,0,7);
Nick := Copy(Msg,9,35);
find:=Key;
ts := find;
Memo1.Lines.LoadFromFile('keys.txt');
begin
for i := 0 to Memo1.Lines.Count-1 do
if Memo1.Lines.Strings[i] = find then
KeyCode:= 1;
end;
if KeyCode = 1 then
begin
Memo1.Lines.Delete(i);
Memo1.Lines.SaveToFile('keys.txt');
Memo1.Lines.Clear;
KeyCode:= 0;
Полученное сообщение разбивается на 2 слова, ключ и имя, в мемо грузится файл c ключами (1 ключ на строку), если полученный ключ совпадает со строкой из мемо (т.е. из keys.txt) строка с ключом поидее должна удаляться.... Но этого не происходит

Помогите найти в чем косяк пожалуйста
