
09.03.2011, 00:41
|
Активный
|
|
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
|
|
Как-то так
Код:
var
i, j: Integer;
newcommand1, newcommand2: Command;
Allresults: TStringList;
try
for i := 0 to skype.HardwiredGroups.Count-1 do
begin
// здесь скорее всего поле Type имеет другое значение, т.к. в Delphi оно ключевое
if skype.HardwiredGroups[i + 1].Type = TGroupType.grpUsersWaitingMyAuthorization then
begin
if skype.HardwiredGroups[i + 1].Users.Count > 0 then
begin
newcommand1.Command = 'GET GROUP '
+ skype.HardwiredGroups[i + 1].Id
+ ' USERS';
newcommand1.Blocking = true;
newcommand1.Expected = 'GROUP '
+ skype.HardwiredGroups[i + 1].Id
+ ' USERS';
newcommand1.Timeout = 30000;
skype.SendCommand(newcommand1);
if newcommand1.Reply.StartsWith(newcommand1.Expected) then
begin
Allresults := TStringList.Create;
// тут сразу много операций =)
// 1. представление newcommand1.Reply в строковом виде
// 2. замена строки 'GROUP ' + skype.HardwiredGroups[i + 1].Id + ' USERS' на ''
// 3. замена строки ' ' на ''
// 4. формируется новый массив строк, содержащий подстроки пердыдущей строки, разделенные запятой
//string[] Allresults = newcommand1.Reply.ToString().Replace("GROUP " + skype.HardwiredGroups[i + 1].Id + " USERS", "").Replace(" ", "").Split(new Char[] { ',' });
if Allresults.Count > 0 then
begin
for j := Allresults.Count-1 downto 0 do
begin
newcommand2.Command = 'SET USER '
+ Allresults[j]
+ ' BUDDYSTATUS 2';
newcommand2.Blocking = true;
newcommand2.Expected = 'USER '
+ Allresults[j]
+ ' BUDDYSTATUS 3';
newcommand2.Timeout = 30000;
skype.SendCommand(newcommand2);
if not newcommand2.Reply.StartsWith(newcommand2.Expected) then
ShowMessage('Bad Reply for: '
// это встоенный метод представление этого значения строкой (нужно использовать стандартные IntToStr или FloatToStr)
+ newcommand2.Command.ToString()
+ ' Reply: '
+ newcommand2.Reply.ToString());
end;
end;
Allresults.Free;
end;
else
ShowMessage('Hardwired Group Reply Error: ' + newcommand1.Reply.ToString());
end;
break;
end;
end;
except
on E : Exception do
ShowMessage('Pending Authorization Group Error- Exception Source: ' + e.ClassName + ' - Exception Message: ' + e.Message);
end;
|