Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2013, 16:56
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию Цикл For. Помогите!

Есть функция
vk.groups_leave(edit1.text);
И поидее vk.groups_leave(gid); Gid несет функцию ид группы.
Edit1=ввод группы
Как выйти из всех групп которые есть?и как добавить исключения?

Код:
procedure TForm3.Button2Click(Sender: TObject);
var
i: Integer;
begin
for i := 1 to 100 do
vk.groups_leave(IntToStr(i));
end;


Так не получается...
Ответить с цитированием
  #2  
Старый 15.01.2013, 17:27
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

наверно надо список id-ов, в которых состоит сначала получить
__________________
>woweook<
Ответить с цитированием
  #3  
Старый 15.01.2013, 21:05
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

Код:
{
   массив1 = все группы
   массив2 = список исключений
   for i=0;i<массив1.length;i++
      if этонеисключение(массив1[i]) 
         groups_leave(массив1[i]);
}


boolean этонеисключение(String test)
{
   for i=0;i<массив2.length;i++
      if массив2[i]==test return false
   
   return true;
} 

ну я щас перешел с делфи на java поэтому описал ближе к джаве ...

lmikle: Еще бы тегами научился пользоваться, совсем молодец бы был...
(вообщем я теги ваши вставляю ... просто здесь код будра вышел ... русский англиский ... вот я и не вставил это как код ... это как структура приближенная к коду ...)

но суть постарался обобщить думаю будет понятно ... если нет напиши подробнее опишу ...

поидеи надо вам копать в эту сторону как я понял ... если речь идет о контакте ...
http://vk.com/developers.php?p=groups.get

Последний раз редактировалось caHek-2x, 16.01.2013 в 04:57.
Ответить с цитированием
Этот пользователь сказал Спасибо caHek-2x за это полезное сообщение:
OTVET (17.01.2013)
  #4  
Старый 15.01.2013, 21:55
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию

Можно пожалуйста более подробнее с примерами.
Функция выхода из группы с помощью вода ид.
Код:
function groups_leave(gid:string):boolean;

Функция для получения групп.
Код:
 function groups_get(uid, extended, filter, fields, offset, count:string):boolean;

Как мне выйти из всех групп кроме введенных?
Ответить с цитированием
  #5  
Старый 15.01.2013, 22:17
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

я не могу понять groups_get куда что возвращает ... потому что её возвращаемое значение булевое. ..
это как я понял ты эти ф-ции с нета взял ... кинь ссылку мож там инфу подробнее найду ...
Ответить с цитированием
  #6  
Старый 15.01.2013, 22:20
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию

http://www.vans-soft.ru/2012/10/beta...nt-delphi.html
Вот компонент.
Ответить с цитированием
  #7  
Старый 15.01.2013, 22:37
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

минут через 20 загляну посмотрю ...
Ответить с цитированием
  #8  
Старый 15.01.2013, 23:10
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

я щас код набросал себе чтобы протестировать компонент ... но что то не логинится ... у тебя авторизацию проходит ?
Код:
  If vk.OnLogin then showmessage('good'); 

Последний раз редактировалось lmikle, 16.01.2013 в 02:40.
Ответить с цитированием
  #9  
Старый 15.01.2013, 23:22
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

ну суть у тебя будет как в примере ...

Код:
objlist.Text:=vk.Response.Text; //в vk.Response находится ответ сервера после выполнения функций
while objlist.Count>0 do begin //цикл будет идти до тех пор пока не пробежит по всему списку id
  id:=Pars('<uid>', objlist[0], '</uid>'); //парсим id
  if Length(id)>5 then vk.friends_add(id, ''); //если это id значит добавляем его
  objlist.Delete(0);
end;
только запрос на список групп ... вместо добавление в друзья .. выход из группы ...
если разберусь че не логиниться и как авторизоваться .. то набросаю готовый пример ...
Ответить с цитированием
Этот пользователь сказал Спасибо caHek-2x за это полезное сообщение:
OTVET (17.01.2013)
  #10  
Старый 16.01.2013, 14:20
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию

авторизация работает только если будут файлы
ssleay32.dll и libeay32.dll
Скинь пожалуйста готовый пример.
Ответить с цитированием
  #11  
Старый 16.01.2013, 14:38
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию

Цитата:
Сообщение от caHek-2x
я щас код набросал себе чтобы протестировать компонент ... но что то не логинится ... у тебя авторизацию проходит ?
Код:
  If vk.OnLogin then showmessage('good'); 
Делаю так.


Код:
    vk:=TVKClient.Create(nil); //создаём компонент
    vk.Format:=XML; //настраиваем формат возвращаемых данных (JSON или XML)
    vk.Login:=sedit1.text;
    vk.Password:=sedit2.text;
    vk.OnLogin; //вызываем функцию авторизации
    sMemo1.Lines.Add('['+TimeToStr(Now)+']: Авторизируемся ВКонтакте...');
    vk.friends_getRequests('', '', '', '', '', ''); //вызываем функцию которая получает заявки в друзья
    if vk.onlogin then sMemo1.Lines.Add('['+TimeToStr(Now)+']: Авторизация прошла успешно!')
    else
    sMemo1.Lines.Add('['+TimeToStr(Now)+']: Авторизация не удалась!');
Ответить с цитированием
Этот пользователь сказал Спасибо Praimmax за это полезное сообщение:
OTVET (17.01.2013)
  #12  
Старый 16.01.2013, 16:50
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

да не авторизовывалось из за этих файлов ...

Код:
procedure TForm5.Button1Click(Sender: TObject);
var
  I: Integer;
  gg: String;
  j: Integer;
  iskl: boolean;
  vk: TVKClient;
  templist: TStringList;
  grouplist: TStringList;
  iskluchenie: TStringList;
begin
  vk := TVKClient.Create(nil); // создаём компонент
  vk.Format := XML; // настраиваем формат возвращаемых данных (JSON или XML)
  vk.Login := 'логин';
  vk.Password := 'пароль';

  If vk.OnLogin then//авторизовываемся и если авторизация прошла то ...
  begin
    showmessage('авторизовались');

    templist := TStringList.Create;
    grouplist := TStringList.Create;
    iskluchenie := TStringList.Create;

    vk.groups_get('', '', '', '', '', ''); // читаем все группы
//добавляем иды групп исключений ...
//добавил для примера http://vk.com/club27019565
//и http://vk.com/club28546855
//можешь посчитывать из мемо или еще откуда .. .если не поймешь короче напиши обьясню ...
    iskluchenie.Add('27019565');
    iskluchenie.Add('28546855');

    templist.Text := vk.Response.Text; // в vk.Response находится ответ сервера после выполнения функций запроса всех групп

//==============================
//в этом блоке ответ с сервера обрабатываем занося в список grouplist только иды без лишних тегов ...
    for I := 0 to templist.Count - 1 do
    begin
      if (Pos('<gid>', templist[i]) > 0) then
      begin
        gg := templist[i];
        Delete(gg, Pos('<gid>', gg), 5);
        Delete(gg, Pos('</gid>', gg), 6);
        Delete(gg, Pos(' ', gg), 1);
        grouplist.Add(gg);
//это открытие в браузере всех групп ... т.к. тестил на себе открыл чтобы потом опять вступить ...
        ShellExecute(handle, 'open', PWideChar('http://vk.com/club' + gg), nil, nil, SW_SHOW)
      end;
    end;
//==============================
    ShowMessage('После нажатия окей ... все группы удалять ...');//вместо этого можно диалог с вопросом поставить и тд ... сам придумаешь или спросишь если что. ..
//==============================
//этот блок выйдит из всех групп что хранятся в grouplist ... но проверив перед выходом не входит ли группа в список исключений ...
    for I := 0 to grouplist.Count - 1 do
    begin
      iskl := false;
//вот блок проверки исключений ...
      for j := 0 to iskluchenie.Count - 1 do
        if grouplist[i] = iskluchenie[j] then
        begin
          iskl := true;
        end;

      if iskl = false then
      begin
        vk.groups_leave(grouplist[i]);
      end;

    end;
//==============================
//выводим список идов всех групп в мемо ...
    Memo1.Text := grouplist.Text;
  end;

  templist.Free;
  grouplist.Free;
  vk.Free;
end;


ну както так ... если что не понятно спрашивай ...
на себе протестил ... все норм .. .)
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо caHek-2x за это полезное сообщение:
OTVET (17.01.2013), Praimmax (16.01.2013)
  #13  
Старый 16.01.2013, 18:52
caHek-2x caHek-2x вне форума
Прохожий
 
Регистрация: 14.12.2010
Сообщения: 31
Репутация: 11
По умолчанию

Цитата:
Сообщение от Praimmax
Делаю так.


Код:
    vk:=TVKClient.Create(nil); //создаём компонент
    vk.Format:=XML; //настраиваем формат возвращаемых данных (JSON или XML)
    vk.Login:=sedit1.text;
    vk.Password:=sedit2.text;
    vk.OnLogin; //вызываем функцию авторизации
    sMemo1.Lines.Add('['+TimeToStr(Now)+']: Авторизируемся ВКонтакте...');
    vk.friends_getRequests('', '', '', '', '', ''); //вызываем функцию которая получает заявки в друзья
    if vk.onlogin then sMemo1.Lines.Add('['+TimeToStr(Now)+']: Авторизация прошла успешно!')
    else
    sMemo1.Lines.Add('['+TimeToStr(Now)+']: Авторизация не удалась!');

ты в своем коде два раза авторизовываешься ...
Ответить с цитированием
Этот пользователь сказал Спасибо caHek-2x за это полезное сообщение:
Praimmax (16.01.2013)
  #14  
Старый 16.01.2013, 20:07
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию

Почему это?
Ответить с цитированием
  #15  
Старый 16.01.2013, 20:18
Praimmax Praimmax вне форума
Прохожий
 
Регистрация: 06.01.2013
Сообщения: 26
Репутация: 10
По умолчанию

Сенёк,есть скайп или аська?нужно задать несколько вопросов,тут долго....
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025