Форум: "Основная";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];
ВнизХелп, люди... Найти похожие ветки
← →
Michael C (2002-03-04 10:03) [0]Есть набор IP адресов, которые надо записать в массив, и сравнить их с другим набором чисел(это размеры), если IP адрес повторяется то сложить размер с пред. размером этого IP адреса ...немного непонятно, но я сам уже все......
← →
Digitman (2002-03-04 10:16) [1]что есть "размер IP-адреса" ?
← →
Michael C (2002-03-04 10:20) [2]Каждому IP, из этого набора соответствует опред. размер, грубо
ххх.ххх.хх.хх 1240
ххх.хх.ххх.хх 580
← →
ProgMan (2002-03-04 10:21) [3]Не мучайся, посчитай в Excel"е!
← →
Digitman (2002-03-04 10:29) [4]Не то что "немного непонятно" - совершенно непонятно, о каком таком "размере" ты речь ведешь.
Что это такое - "размер" ? Что и как у тебя измерялось, в рез-те чего начало фигурировать понятие "размер" чего-то там ? В каких единицах это самый "размер" измерялся ?
← →
Michael C (2002-03-04 10:39) [5]Значить, так, DigitMan вся надежда на тебя:
Веду выборку из файла, выбираю столбцы с Source IP, c Dest IP и c Size. Выбрал. Далее, Source IP, может повторяться, так вот надо все одинаковые S IP и D IP, выбрать и сложить их значения Size...
тока не пинай, понедельник тяжел как никогда...
← →
Sasha9 (2002-03-04 10:51) [6]что-то я не догоняю......... может приведёшь фрагмент из файла с S IP, D IP и Size
← →
Digitman (2002-03-04 10:51) [7]SELECT DstIP, SrcIP, Sum(Size) AS TotalSize
FROM TrafficTable
GROUP BY xxx.DstIP, xxx.SrcIP;
← →
Michael C (2002-03-04 10:59) [8]Вот фрагмент
Source IP address Dest IP address Size
217.73.192.19 192.168.33.55 971
192.168.33.55 217.73.192.19 60
192.168.33.55 217.73.192.19 60
195.34.32.68 192.168.33.55 62
← →
Sasha9 (2002-03-04 11:06) [9]обрезай строку до последнего пробела (copy,pos,delete) и складывай оставшийся size с помощью strtoint
← →
Michael C (2002-03-04 11:15) [10]Просто мне требуется, код
адрес источника равно номер элемента массива.
А дальше я сам
← →
Shaman_Naydak (2002-03-04 11:27) [11]>> ProgMan
Мда, Просто нету слов!
>> Michael C
А в чем проблема-то? Digitman привел абсолютно правильное решение.
Или проблема в том, чтобы из текстового файл считать, разложив каждую строчку по полям структуры?
← →
Michael C (2002-03-04 11:30) [12]Вот именно, требуется подсчитать траффик для каждого адреса.
И вопрос group by , именно это и сделает??
← →
Digitman (2002-03-04 11:36) [13]
type
PTrafficReport = ^TTrafficReport;
TTrafficReport = packed record
SrcIP: DWord;
DstIP: Dword;
Size: Int64;
end;
var
TrafficData: TList; //исходный список указателей на записи типа TTrafficReport;
TotalTrafficData: TList; //результирующий список
...
function FindTotalTrafficRecord(ASrcIp, ADstIp: DWord): PTrafficReport;
var
i: Integer;
p: PTrafficReport;
begin
Result:= nil;
for i:= 0 to TotalTrafficData.Count - 1 do begin
p := TotalTrafficData.Items[i];
if (p.SrcIp = ASrcIp) and (p.DstIp = ADstIp) then begin
Result:= p;
break;
end;
end;
end;
var
i: Integer;
SIp, DIp: DWord;
Sz: Int64;
p: PTrafficReport;
for i:= 0 to TrafficData.Count - 1 do begin
with PTrafficReport(TrafficData.Items[i])^ do begin
SIp := SrcIp;
DIp := DstIp;
Sz := Size;
end;
p:= FindTotalTrafficRecord(SIp, DIp);
if not Assigned(p) then begin
New(p);
p.SrcIp := SIp;
p.DstIp := DIp;
p.Size := 0;
TrafficData.Add(p);
end;
p.Size := p.Size + Sz;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c