HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 04.07.2008, 01:41
Dober'man
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..
 
Ответить с цитированием

  #2  
Старый 04.07.2008, 02:03
Hellsp@wn
Постоянный
Регистрация: 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;
 
Ответить с цитированием

  #3  
Старый 05.07.2008, 05:07
Nightmarе
Познавший АНТИЧАТ
Регистрация: 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 не пашет, а других вариантов я не нашёл.
 
Ответить с цитированием

  #4  
Старый 07.07.2008, 16:38
Exile1985
Участник форума
Регистрация: 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.
 
Ответить с цитированием

  #5  
Старый 05.07.2008, 02:30
Zitt
Познавший АНТИЧАТ
Регистрация: 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 - некатят....
 
Ответить с цитированием

  #6  
Старый 05.07.2008, 14:01
Dober'man
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..
 
Ответить с цитированием

  #7  
Старый 05.07.2008, 14:12
Hellsp@wn
Постоянный
Регистрация: 29.04.2007
Сообщений: 496
С нами: 10018466

Репутация: 588
По умолчанию

набирал в блокноте, по-этому накосячил да, там +1 нада.
 
Ответить с цитированием

  #8  
Старый 07.07.2008, 22:05
Nightmarе
Познавший АНТИЧАТ
Регистрация: 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 номера в списке...
Понять не могу где же ошибка...
 
Ответить с цитированием

  #9  
Старый 09.07.2008, 00:57
De-visible
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. прет меня сорри
 
Ответить с цитированием

  #10  
Старый 07.07.2008, 22:21
Dober'man
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..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2569 10.05.2026 13:27
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.