Хелп. Казалось бы простая задача, но замучался решать. Деградирую наверное.
В общем дан текстовый файл с IP адресами (примерно 80 тыс. строк)
пример:
192.168.121.88
192.168.121.88
192.168.58.67
192.168.27.80
192.168.5.19
192.168.5.19
192.168.121.88
192.168.58.67 и т.д.
нужно посчитать количество каждых уникальных строк (IP адресов), т.е.
192.168.121.88 - 3
192.168.58.67 - 2
192.168.27.80 - 1
192.168.5.19 - 2 и т.д.
пробовал сначала брать первую строку, пройтись по всем остальным, подсчитать кол-во, потом вторую, если она еще не бралась так же считать все... но это нужно будет на каждую строку проходить весь файл, а это 80 000 записей, в общем это будет на неделю. пробовал поместить все IP адреса в массив, но массив из 80 000 индексов, это просто комп. виснет.
Решил сделать так: берем 1ю строку, заносим ее в массив скажем ipaddr[1] = "192.168.121.88" в параллельный массив пишем
nnaddr[1] = 1, берем вторую строку, производим ее поиск в массиве, если такая нашлась, то nnaddr[1] += 1 если не нашлась значит она уникальна и значит добавляем элемент массива
_ArrayAdd ($ipaddr,"192.168.58.67"), а в параллельный nnaddr[2] = 1
и так далее. вся сложность в том, что не могу реализовать - наверное я заработался или уже голова от недосыпаний не варит.
может кто подскажет как реализовать, запутался уже...
заранее спасибо.
В общем дан текстовый файл с IP адресами (примерно 80 тыс. строк)
пример:
192.168.121.88
192.168.121.88
192.168.58.67
192.168.27.80
192.168.5.19
192.168.5.19
192.168.121.88
192.168.58.67 и т.д.
нужно посчитать количество каждых уникальных строк (IP адресов), т.е.
192.168.121.88 - 3
192.168.58.67 - 2
192.168.27.80 - 1
192.168.5.19 - 2 и т.д.
пробовал сначала брать первую строку, пройтись по всем остальным, подсчитать кол-во, потом вторую, если она еще не бралась так же считать все... но это нужно будет на каждую строку проходить весь файл, а это 80 000 записей, в общем это будет на неделю. пробовал поместить все IP адреса в массив, но массив из 80 000 индексов, это просто комп. виснет.
Решил сделать так: берем 1ю строку, заносим ее в массив скажем ipaddr[1] = "192.168.121.88" в параллельный массив пишем
nnaddr[1] = 1, берем вторую строку, производим ее поиск в массиве, если такая нашлась, то nnaddr[1] += 1 если не нашлась значит она уникальна и значит добавляем элемент массива
_ArrayAdd ($ipaddr,"192.168.58.67"), а в параллельный nnaddr[2] = 1
и так далее. вся сложность в том, что не могу реализовать - наверное я заработался или уже голова от недосыпаний не варит.
может кто подскажет как реализовать, запутался уже...
заранее спасибо.