JavaRush /Java блог /Архив info.javarush /Это удивительно!
artur-ant
30 уровень
Москва

Это удивительно!

Статья из группы Архив info.javarush
Привет всем! Я хочу написать о том, что программирование это удивительно! Сегодня на работе, еще не программистом, мне потребовалось обработать файл от 1000 (тысячи!) сотрудников, мне необходимо было собрать по ним по всем список ПО, которое стоит у них на компах. В экселевском файле были огромные строки с большим количеством ПО, в этих строка были по разному разделены названия программ. И этих строк было 1200 (!). Когда я впервые увидел файл, я, честно говоря, испугался. Такое количество тупой обработки, копипаст отсюда сюда. ЖЕСТЬ! И тут руки сами потянулись к IDEA. Я скопировал 1200 строк из опросника (экселевская колонка со списком программ) в текстовый документ. Руки сами по себе накидали скрипт (спасибо за такое количество практики на курсе (!)). Открыть файл считать из файла все поместить в TreeSet с новым компаратором, который не учитывает регистр все вывести в другой файл. В итоге 230 строчек, которые хоть и не были уникальны совершенно, но это 230 строчек АККУРАТНО уложенного и отсортированного списка программ вместо 1200 строк слипшегося, простите меня, плохо пахнущего вещества. А так как все отсортировано, то похожие название уже рядом, и мне остается лишь немного доработать список вручную. И все это за 1600 мс. Меньше, чем за 2 секунды (!). А я бы потратил на это перелопачивание руками часа 2 или 3, я бы возненавидел всех тех нерадивых сотрудников за такие списки, проклял бы тот день, когда я сел за баранку этого пылесоса. А так 2 секунды. Я ВОСХИЩЕН! Спасибо всем тем, кто все это придумал. Множество умных людей все это создавали годами. Внутри Java огромные мощности. Фантастика!!! Спасибо создателям курса за то, что научили этому всему. Программирование РЕАЛЬНО облегчает жизнь людям. p.s. буду дальше скрипт допиливать, чтобы сделать еще несколько отчетов по по этому ( а дальше еще будет) опроснику. p.p.s. хочу для этой цели, если пойдет, освоить Apache Lucene, потому что есть еще одна задачка по поиску этих названий в базе. Поэтому, если кто захочет составить компанию, то с радостью поизучаю эту технологие в компании. Также было бы здорово поработать с наставником.
Комментарии (17)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
EvIv Уровень 30
5 апреля 2016
Да, это крутое ощущение. Как-то тоже пришлось логи с сервера «прочёсывать» на предмет поиска глючащих или неотвечающих датчиков. А всего датчиков несколько тысяч, шлют данные периодически с меткой времени (иногда неверной). Глючных пару сотен нашлось. Больше всего времени ушло на скачивание десятков файлов логов, остальное Java сделала за пару минут =) Хотя и скачивание, если заморочиться, можно было автоматизировать.
Truefirefox Уровень 40
5 апреля 2016
В екселе такие штуки делаются через макросы. Если нужно что позаковыристее, то можно поюзать VBA.
Lexw Уровень 35
31 марта 2016
да, я помню мне как-то понадобилось преобразовать один экселевский файл с 5-ю тысячами абонентов в другой экселевский файл, который можно было импортировать в базу данных. проблема была в том, что записи велись не очень аккуратно и многие данные были или не полные, или не подходили под шаблон. В итоге потратив полдня я на powershell написал скрипт (ох уж эти регэкспы, тогда я познал их мощь) который отсеял в один файл нормальные данные, а в другие файлы рассортировал данные по одинаковому признаку неправильности.
в общей сложности осталось около 300 «неправильных» абонентов. их распределили трем сотрудницам, которые поправили информацию (гораздо легче, когда в одно файле неправильные номера договоров, в другом не полная информация об абоненте и т.п.) за оставшиеся полдня.
artur-ant Уровень 30
21 марта 2016
Очень круто находить полученным тут знаниям и умениям реально применение.
Это вдохновляет.
sergiiko Уровень 32
21 марта 2016
Тоже недавно отпарсил эксель документ, в котором 1-й столбец — название товара, а 700 столбцов вправо — даты за 2 года. На пересечении — остатки.
Мне нужны были остатки на 1-е число каждого месяца. Без использования VBA это было бы куча ручного ВПРа…
Решил забецать на Java, кайфонул :-)
Кстати, ты в блокнот мог не копировать, а сохранить файл в CSV через «Сохранить как...»
Joysi Уровень 41
21 марта 2016
Это полезно, что находятся реальные задачи, которые убивают 2х зайцев: дополнительно совершенствовать Java и попутно решив проблему. Это здорово и приятно применить недавно полученные знания, чего скрывать.
AndreGold Уровень 28
21 марта 2016
не знал что на Java пишут скрипты

И вообще есть подозрение, что это можно было сделать средствами Еxcel не прибегая к Java.