Конференция "Прочее" » Разбор кода подсчета трафика
 
  • ob_kun (08.07.08 17:35) [60]
    Так и есть, убедился эмпирически сейчас ;)

    > ОбновитьЭлементИОтметитьКакОбновлённый();

    как понять - отметить как обновленный?
  • ob_kun (08.07.08 17:36) [61]
    foreach ifItem in pIfTable do

    и откуда взялось ifItem?
  • ob_kun (08.07.08 17:47) [62]
    Кроме того, не совсем ясна твоя логика: смотри, вот у нас список
    1    5
    2    300
    3    44

    и если 1 есть, то обновим его и пометим как обновленный, если, скажем, 4 нету, то добавим и пометим как обновленный. А откуда ж тогда возьмутся необновленные?
  • ketmar © (08.07.08 17:53) [63]
    >[60] ob_kun (2008-07-08 17:35:00)
    >как понять — отметить как обновленный?

    у каждого элемента свой флажок «меня на этой итерации трогали».

    >[61] ob_kun (2008-07-08 17:36:00)
    >и откуда взялось ifItem?

    это переменная-итератор. в данном смысле конструкция foreach примерно так раскрывается:

    var
     a: array [1..10] of Integer;
     item: Integer;
     cnt: Integer;

    //foreach item in a do это:
    for cnt := 0 to High(a) do
     item := a[cnt];
     ….
    end;



    >[62] ob_kun (2008-07-08 17:47:00)
    >А откуда ж тогда возьмутся необновленные?

    пришёл марсианец и украл один сетевой интерфейс.

    ---
    Do what thou wilt shall be the whole of the Law.
  • ob_kun (08.07.08 17:56) [64]

    > у каждого элемента свой флажок «меня на этой итерации трогали».

    а флажок этот как реализуется?

    > это переменная-итератор.

    а тип у нее какой?
    > пришёл марсианец и украл один сетевой интерфейс.

    вот заразна душа)
  • ob_kun (08.07.08 17:59) [65]

    > а флажок этот как реализуется?

    неужто придется вводить доп лист, индексы которого соответствуют индексам в ListView?
  • ketmar © (08.07.08 18:00) [66]
    >[64] ob_kun (2008-07-08 17:56:00)
    >а флажок этот как реализуется?

    как программист захочет. главное, чтобы с каждым элементом был чётко связан свой флажок.

    >а тип у нее какой?
    посмотри на мой код-расшифровку внимательно.

    >вот заразна душа)
    — Цан, извини, а вот такие, с хоботками, это кто? — спросил Гедеван.
    — Никто. Фитюльки.
    — В каком смысле?
    — Во всех. Болтают, что они тут раньше, до плюкан жили.  Но это так… Треп.



    ---
    All Your Base Are Belong to Us
  • ketmar © (08.07.08 18:01) [67]
    >[65] ob_kun (2008-07-08 17:59:00)
    >неужто придется вводить доп лист, индексы которого соответствуют индексам в
    >ListView?

    у item есть чудное свойство data.

    ---
    All Your Base Are Belong to Us
  • ob_kun (08.07.08 18:06) [68]

    > посмотри на мой код-расшифровку внимательно.

    такое чувство, что коли все типа Integer, а pIfTable типа PMibIfTable, то и ifItem должна быть типа PMibIfTable ))))
  • ob_kun (08.07.08 18:10) [69]
    Свойство это типа Pointer, а как его припихнуть, на что сослаться - тоже вопрос....

    a = 1; // отмечен
    lv.Items[0].Data := @a;

    ?
  • ob_kun (08.07.08 18:12) [70]
    Или просто

    lv.Items[0].Data := Pointer(1);

    ...

    lv.Items[1].Data := Pointer(0);

    ?
  • ketmar © (08.07.08 18:25) [71]
    >[70] ob_kun (2008-07-08 18:12:00)
    вот это мысль верная. %-)

    >[68] ob_kun (2008-07-08 18:06:00)
    >такое чувство, что коли все типа Integer, а pIfTable типа PMibIfTable, то и ifItem
    >должна быть типа PMibIfTable ))))

    это потому, что в Delphi нет foreach. точнее, не было. %-) вот и непривычно. ничего, потом пригодится когда-нибудь.

    ---
    Understanding is not required. Only obedience.
  • ob_kun (08.07.08 23:42) [72]
    Так по поводу типа ifItem я верно угадал???
  • ob_kun (09.07.08 12:58) [73]
    Я просто не совсем понимаю, как переложить аналогию с массивом на структуру.
  • ketmar © (09.07.08 13:50) [74]
    >[73] ob_kun (2008-07-09 12:58:00)
    да пофигу. первый цикл у тебя верный, оставь тот псевдокод. я просто твой цикл короче переписал, потому что ленивый.

    ---
    All Your Base Are Belong to Us
  • ob_kun (09.07.08 14:01) [75]
    Ты имеешь ввиду, оставить for i := 0  to pIfTable.dwNumEntries-1 do
      begin
    ....

    ?
  • ketmar © (09.07.08 14:05) [76]
    >[75] ob_kun (2008-07-09 14:01:00)
    угу. это и есть foreach, только выраженый более многословно. %-)

    ---
    All Your Base Are Belong to Us
  • ob_kun (09.07.08 23:34) [77]
    Завтра постараюсь написать процедуру в более-менее нормальном варианте. Остался еще вопрос - как ты представляешь себе, что суть процедура IsItemInList ? Как она должна осуществлять поиск элемента? По имени интерфейса (добавить отображение wszName) ?
  • ketmar © (10.07.08 13:08) [78]
    >[77] ob_kun (2008-07-09 23:34:00)
    да хоть и так. или по адресу, например.

    ---
    All Your Base Are Belong to Us
  • ob_kun (10.07.08 13:35) [79]
    А есть какая-то возможность, чтобы поля в ListView были, но их не было видно? Или стоит просто писать в Tag у элементов первой колонки значение wszName?
 
Конференция "Прочее" » Разбор кода подсчета трафика
Есть новые Нет новых   [134439   +46][b:0][p:0.001]