![]() |
|
|
#1
|
|||
|
|||
|
Доброго времени суток уважаемые
![]() Пишу 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) строка с ключом поидее должна удаляться.... Но этого не происходит Помогите найти в чем косяк пожалуйста ![]() Последний раз редактировалось Cracer, 27.04.2010 в 19:48. |
|
#2
|
||||
|
||||
|
Цитата:
Цитата:
П.с.: а вобщем это все можно гораздо лучше реализовать. Зачем каждый раз грузить с файла в файл? Зачем сравнивать именно в мемо? Зачем соединять пароль и ник в одном файле? И т.д. Последний раз редактировалось Konrad, 27.04.2010 в 19:30. |
|
#3
|
|||
|
|||
|
В поставленной задаче есть хоть намек на рассылку спама? Совершенно не для этих целей. Для рассылки спама мне просто необходимо принимать входящие сообщения?
![]() В файле нет пасса и кода, а лишь одни пассы-ключи, по 1 ключу в строку. Вы меня спрашиваете зачем? Я сам знаю что можно проще, но особой нужды в простоте нет, собственно как и идей (знаний) как это сделать проще. Пароль и ник в файле не соединяются вообще. Меня конкретно интересует как в данном примере удалить найденную строку. Последний раз редактировалось Cracer, 27.04.2010 в 19:56. |
|
#4
|
||||
|
||||
|
Код:
if Memo1.Lines.Strings[i] = find then |
|
#5
|
|||
|
|||
|
перезадал переменную... заработало. Спасибо, проблема решена.
|