[Delphi] вопрос на засыпку.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by RedFern.89, 24 Jan 2010.

  1. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    у меня есть 3 переменные типа TStringList в одной хранятся все мои друзья ВКонтакте, в другой все мои он-лайн друзья ВКонтакте. Вопрос! Как записать в 3ю переменную онлайн друзей и оставшихся друзей, исключая онлайн друзей? спасибо.
     
  2. ][yZ

    ][yZ Member

    Joined:
    3 Mar 2009
    Messages:
    66
    Likes Received:
    46
    Reputations:
    10
    "онлайн друзей и оставшихся друзей, исключая онлайн друзей"
    поясни, как я понял, тебе нужно скопировать все из 1-го списка в 3-й?
     
  3. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    надо из общего списка исключить онлайн друзей, и добавить в 3й
     
  4. ][yZ

    ][yZ Member

    Joined:
    3 Mar 2009
    Messages:
    66
    Likes Received:
    46
    Reputations:
    10
    ну и в чем проблема? можно банально за o(n*m) проходиться по первому списку и если элемент есть во втором, то не добавлять его
     
  5. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    557
    Likes Received:
    45
    Reputations:
    0
    на этот код у меня ругается мол List Index Out Bounds

    Code:
    
    var i,j : integer;
    ....
    
    For I := 0 To FrList.Count -1 do
    begin
      For j := 0 To OnLineFriend.Count -1 Do
      begin
         If FrList[i] = OnLineFriend[j] Then FrList.Delete(i);
      end;
    end;
    
    
     
  6. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    хоть это и п*ец, но твой код можно переделать вот так
    Code:
    For I := FrList.Count -1 downto 0  do
    begin
      For j := 0 To OnLineFriend.Count -1 Do
      begin
         If FrList[i] = OnLineFriend[j] Then FrList.Delete(i);
      end;
    end;