
04.07.2008, 01:41
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
С нами:
9905879
Репутация:
337
|
|
Ошибка в memo2.lines.add и memo3.lines.add - извини ступил...так добавлять нельзя!
А вот если задать еще и str2, str3: string; то работать будет
Проверил =)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
str, str2, str3: string;
begin
for i:=0 to 10 do
begin
str:=memo1.lines.strings[i];
insert(copy(str,1,pos(';',str)-1), str2, 1);
insert(copy(str,pos(';',str)+1,length(str)-pos(';',str)), str3, 1);
end;
memo2.lines.Add(str2);
memo3.lines.add(str3);
end;
update:
Незабывай, работает при разделителе ; между уином и паролем...
Последний раз редактировалось Dober'man; 04.07.2008 в 01:47..
|
|
|

04.07.2008, 02:03
|
|
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
С нами:
10018466
Репутация:
588
|
|
чуть опоздал, но на всяк ещё способ
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,n:dword;
s:string;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
n := pos(';',memo1.Lines.Strings[i]);
If (n > 0) then
begin
s := copy(memo1.Lines.Strings[i],1,n-1);
memo2.Lines.Add(s);
inc(n);
s := copy(memo1.Lines.Strings[i],n,length(memo1.Lines.Strings[i]) - n);
memo3.Lines.Add(s);
end;
end;
end;
|
|
|

05.07.2008, 05:07
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Сообщение от Hellsp@wn
чуть опоздал, но на всяк ещё способ
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,n:dword;
s:string;
begin
for i:=0 to memo1.Lines.Count-1 do
begin
n := pos(';',memo1.Lines.Strings[i]);
If (n > 0) then
begin
s := copy(memo1.Lines.Strings[i],1,n-1);
memo2.Lines.Add(s);
inc(n);
s := copy(memo1.Lines.Strings[i],n,length(memo1.Lines.Strings[i]) - n);
memo3.Lines.Add(s);
end;
end;
end;
Я конешн понимаю смешно звучит, но опять таки последний символ в пароле режется... я заметил не сразу. Как исправить?
Ну или вариант с TStringList, но как цикл установить по типу memo1.lines.count ???
ss.count не пашет, а других вариантов я не нашёл.
|
|
|

07.07.2008, 16:38
|
|
Участник форума
Регистрация: 10.08.2006
Сообщений: 147
С нами:
10395573
Репутация:
94
|
|
Сообщение от Nightmarе
Я конешн понимаю смешно звучит, но опять таки последний символ в пароле режется... я заметил не сразу. Как исправить?
Ну или вариант с TStringList, но как цикл установить по типу memo1.lines.count ???
ss.count не пашет, а других вариантов я не нашёл.
все там нормально пашет...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ss:Tstrings;
i:integer;
begin
ss:=TStringList.Create;
ss.LoadFromFile('uins.txt');
ss.NameValueSeparator:=';';
for i:=0 to ss.Count-1 do
begin
ICQClient1.UIN := StrToInt(ss.Names[i]);
ICQClient1.Password := ss.ValueFromIndex[i];
end;
end;
end.
|
|
|

05.07.2008, 02:30
|
|
Познавший АНТИЧАТ
Регистрация: 07.05.2006
Сообщений: 1,031
С нами:
10533245
Репутация:
773
|
|
такая ситуация..
Есть Edit1 и кнопка... Нужно реалтзовать поиск по БД методом Lookup по полю F
В Table1 - F
В Table2 - No Dg D As
begin
LookupResult := Table1.Lookup('F',Edit1.Text,
'No;Dg;D;As');
if VarType(LookupResult)=varNull then
ShowMessage('Íåò ')
else if VarIsArray(LookupResult) then
begin
s.Caption := LookupResult[0];
s.Caption := LookupResult[1];
s.Caption := LookupResult[2];
s.Caption := LookupResult[3];
end else ....
при значении которого нет в бд все ок, выдает месачж что нет.. но када вводиш правельное значение выдает ошибку типа не может найти No Dg D As....
Собственна как искать в другой таблице?
Table2.No и Table2No - некатят....
|
|
|

05.07.2008, 14:01
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
С нами:
9905879
Репутация:
337
|
|
Nightmarе
ИМХО мой работает =) ... Просто сделай в моем варианте обработку всех строк мемо, а то я так, 10 штук взял в пример
Код:
i:=0 to memo1.Lines.Count-1
Его вариант тоже будет работать правильно, если здесь будет так:
Код:
s := copy(memo1.Lines.Strings[i],n,length(memo1.Lines.Strings[i]) - n+1);
memo3.Lines.Add(s);
Последний раз редактировалось Dober'man; 05.07.2008 в 14:05..
|
|
|

05.07.2008, 14:12
|
|
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
С нами:
10018466
Репутация:
588
|
|
набирал в блокноте, по-этому накосячил  да, там +1 нада.
|
|
|

07.07.2008, 22:05
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
ICQClient1 - а ведь точно угодали что я под него пишу, хотя я про него не упомянал...
В общем я пытаюсь массовую смену паролей организовать для UIN`ов, вот мой код:
Код:
procedure TForm1.FlatButton7Click(Sender: TObject);
var
i,n:dword;
s,s2:string;
begin
uins.Lines.LoadFromFile(FlatEdit5.text);
for i:=0 to uins.Lines.Count-1 do
begin
n := pos(';',uins.Lines.Strings[i]);
If (n > 0) then
begin
masslogin.Clear;
masslogin.text := copy(uins.Lines.Strings[i],1,n-1);
//memo2.Lines.Add(s);
inc(n);
masspass.Clear;
masspass.text := copy(uins.Lines.Strings[i],n,length(uins.Lines.Strings[i]) - n+1);
//memo3.Lines.Add(s);
ICQClient1.ConvertToPlaintext := True; //Convert RTF text to plain (when you don't use TRichEdit)
ICQClient1.ICQServer := 'login.icq.com'; //Default login server
ICQClient1.ICQPort := 5190; //Default login port
ICQClient1.Password := masspass.text; //Set password
ICQClient1.UIN := StrToInt(masslogin.text); //Set UIN
ICQClient1.Login; //Login to server!
end;
end;
uins - это мемо в которое получаем список uin;pass
masslogin - сюда в цикле кидаем логин
masspass - сюда в цикле кидаем пасс
Далее функция авторизирования и смены паролей (ICQClient1.Login):
Код:
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then
begin
ICQClient1.ChangePassword('ну тут нужный пароль который будет') ;
Label1.Caption:='Успешно!!!';
end;
В итоге успешно меняется пасс тока у самого последнего ICQ номера в списке...
Понять не могу где же ошибка...
|
|
|

09.07.2008, 00:57
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
С нами:
9655526
Репутация:
1821
|
|
Сообщение от Nightmarе
ICQClient1 - а ведь точно угодали что я под него пишу, хотя я про него не упомянал...
В общем я пытаюсь массовую смену паролей организовать для UIN`ов, вот мой код:
Код:
procedure TForm1.FlatButton7Click(Sender: TObject);
var
i,n:dword;
s,s2:string;
begin
uins.Lines.LoadFromFile(FlatEdit5.text);
for i:=0 to uins.Lines.Count-1 do
begin
n := pos(';',uins.Lines.Strings[i]);
If (n > 0) then
begin
masslogin.Clear;
masslogin.text := copy(uins.Lines.Strings[i],1,n-1);
//memo2.Lines.Add(s);
inc(n);
masspass.Clear;
masspass.text := copy(uins.Lines.Strings[i],n,length(uins.Lines.Strings[i]) - n+1);
//memo3.Lines.Add(s);
ICQClient1.ConvertToPlaintext := True; //Convert RTF text to plain (when you don't use TRichEdit)
ICQClient1.ICQServer := 'login.icq.com'; //Default login server
ICQClient1.ICQPort := 5190; //Default login port
ICQClient1.Password := masspass.text; //Set password
ICQClient1.UIN := StrToInt(masslogin.text); //Set UIN
ICQClient1.Login; //Login to server!
end;
end;
uins - это мемо в которое получаем список uin;pass
masslogin - сюда в цикле кидаем логин
masspass - сюда в цикле кидаем пасс
Далее функция авторизирования и смены паролей (ICQClient1.Login):
Код:
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
if ICQClient1.LoggedIn then
begin
ICQClient1.ChangePassword('ну тут нужный пароль который будет') ;
Label1.Caption:='Успешно!!!';
end;
В итоге успешно меняется пасс тока у самого последнего ICQ номера в списке...
Понять не могу где же ошибка...
Все бы ничего....кроме одной мелочи)
-------------
Всего лишь мелочи....
-------------
Заметь ты юзаешь цикл, а компоненту что бы залогинить номер нужно пару секунд!
Вот теперь смотри, ты юзаешь(на form1) только один компонент, а цикл проходит быстро, следовательно номера не успевают залогиниться, коннектится только последний потому что он последний...
-------------
Выход из этой жопной ситуации:
1) Юзать таймер - скорость маленькая
2) Юзать массив компоненнтов - лучший выход.
другому не быть...ля ля тополя - вот так вот...
отсюда вывод код не верный!
его надо переделывать....
или же код верный но его надо втыкать в таймер, что приведет к другой жопе, к снижению скорости смены пароля...
----
У меня все, спс за внимание
----------
P.S. прет меня сорри
|
|
|

07.07.2008, 22:21
|
|
Banned
Регистрация: 16.07.2007
Сообщений: 79
С нами:
9905879
Репутация:
337
|
|
Ну так ведь после того как ты распределил, к примеру 10 номеров и пасов, указатели в этих файлах(файл с номерами и файл с паролями) сохраняются на последних записях, т.е. у тебя идет смена пароля только последнего уина...
Можно сделать что-то типа: for i:=10 downto 1, либо закрыть и потом открыть файл, либо seek...
update:
А вообщем, я на твоем месте сделал бы типизированные файлы:
Код:
type NumberUin = record n: integer end;
var f1: file of NumberUin; // файл с номерами уинов
type PassUin = record p: string end;
var f2: file of PassUin; // файл с паролями уинов
С ними было бы по проще, да и представляются они в системе как двотчные...
Последний раз редактировалось Dober'man; 07.07.2008 в 22:29..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|