Привет всем!
Я хочу написать о том, что программирование это удивительно!
Сегодня на работе, еще не программистом, мне потребовалось обработать файл от 1000 (тысячи!) сотрудников, мне необходимо было собрать по ним по всем список ПО, которое стоит у них на компах.
В экселевском файле были огромные строки с большим количеством ПО, в этих строка были по разному разделены названия программ. И этих строк было 1200 (!).
Когда я впервые увидел файл, я, честно говоря, испугался. Такое количество тупой обработки, копипаст отсюда сюда. ЖЕСТЬ!
И тут руки сами потянулись к IDEA.
Я скопировал 1200 строк из опросника (экселевская колонка со списком программ) в текстовый документ.
Руки сами по себе накидали скрипт (спасибо за такое количество практики на курсе (!)).
Открыть файл
считать из файла
все поместить в TreeSet с новым компаратором, который не учитывает регистр
все вывести в другой файл.
В итоге 230 строчек, которые хоть и не были уникальны совершенно, но это 230 строчек АККУРАТНО уложенного и отсортированного списка программ вместо 1200 строк слипшегося, простите меня, плохо пахнущего вещества.
А так как все отсортировано, то похожие название уже рядом, и мне остается лишь немного доработать список вручную.
И все это за 1600 мс.
Меньше, чем за 2 секунды (!).
А я бы потратил на это перелопачивание руками часа 2 или 3, я бы возненавидел всех тех нерадивых сотрудников за такие списки, проклял бы тот день, когда я сел за баранку этого пылесоса.
А так 2 секунды.
Я ВОСХИЩЕН!
Спасибо всем тем, кто все это придумал. Множество умных людей все это создавали годами. Внутри Java огромные мощности. Фантастика!!!
Спасибо создателям курса за то, что научили этому всему.
Программирование РЕАЛЬНО облегчает жизнь людям.
p.s. буду дальше скрипт допиливать, чтобы сделать еще несколько отчетов по по этому ( а дальше еще будет) опроснику.
p.p.s. хочу для этой цели, если пойдет, освоить Apache Lucene, потому что есть еще одна задачка по поиску этих названий в базе. Поэтому, если кто захочет составить компанию, то с радостью поизучаю эту технологие в компании.
Также было бы здорово поработать с наставником.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
:)
Но мне было гораздо приятней применять полученные тут знания на практике. помочь себе и своим коллегам.
К тому же я не знаю ни макросов, ни VBA.
в общей сложности осталось около 300 «неправильных» абонентов. их распределили трем сотрудницам, которые поправили информацию (гораздо легче, когда в одно файле неправильные номера договоров, в другом не полная информация об абоненте и т.п.) за оставшиеся полдня.
Это вдохновляет.
Мне нужны были остатки на 1-е число каждого месяца. Без использования VBA это было бы куча ручного ВПРа…
Решил забецать на Java, кайфонул :-)
Кстати, ты в блокнот мог не копировать, а сохранить файл в CSV через «Сохранить как...»
Я парсил CSV файл, когда работал со всем файлом. Отдельно считывал данные сотруднико в в объекты, составлял списки этих объектов, извлекал список софта, производил «нечеткий» поиск в базе.
Получилось не особо, но поиск работал, хоть и не гугл :):):)
Я спецом напросился на подобного рода задачи.
Я увидел задачу, над которой трудились другие, проверяя вручнуюи используя какие-то средства Экселя. Посмотрел на это и решил соорудить программу.
Я, признаться честно, не хотел также париться.
И практика нужна, коль на работе решать задачи не получается, так хоть буду кодить «официально» :)
Изначально я «пилил» более крупное приложение на нечеткий поиск. Я тогда не знал про Apache Lucene и изучал технологию поиска, индексации, ранжирования и «велосипедил» сам.
Получился худо-бедный поиск по базе названий. Но то, как пользователи порой называют программы вместо правильного названия меня убивало )
И вообще есть подозрение, что это можно было сделать средствами Еxcel не прибегая к Java.
Самое главное что в жизни помогло.
Говоря скрипт, я подразумеваю некий небольшой набор команд без особой «интеллектуальной» логики.
С библиотекой для Excel еще не пробовал работать. Apache POI, знаю называется.
К сожалению за программирование мне пока что не платят, необходимо было сделать работу по обработке данных.
Название 1 Название 2 Название 3 Название 4
Название 1; Название 2; Название 3; Название 7
Название 5 Название 6
Название 3, Название 2, Название 1
Итог:
Название 1
Название 2
Название 3
Название 4
Название 5
Название 6
Название 7
Дубликаты тут не удалишь :)
В том то и дело, что данные от сотрудников огогогого какие «качественные» и форматированные.
:)