ZeVSalt
Я не лупоглазый, это прищур такой !
- Сообщения
- 136
- Репутация
- 0
Добрый день.
Господа, помогите с реализацией. :'(
Пред история:
Компьютеры в сети при загрузке отправляют на сервер отчет в текстовом согласно строке
где $Kasper, $Vip, $Kript, $SUDIS данные об установленных программах которые возвращают "ДА" или "НЕТ"
в текстовом файле выглядит так:
Данные отправляются только 1 раз в день, вне зависимости от кол-ва перезагрузок компьютера, и складываются в папку с отчетами по дате:
Есть файл User.txt с данными пользователей, вида:
Задача:
1) Считать данные из всех файлов отчета, взяв к примеру один IP адрес, найти самый новый файл отчета содержащий этот IP, к примеру 01 01 2016 программа не была установлена а 10 01 2016 уже стоит, но в этом промежутке комп вообще не включался и соответственно отчет не слал, поэтому надо искать самый новый файл с этим IP, и считать состояние установки программ к примеру это будет - "ДА НЕТ ДА НЕТ", (причем выбрать нужно все уникальные IP во всех файлах).
2) Найти этот IP в User.txt, считать данные полей - подразделение (ПРАВОВАЯ ГРУППА), место установки (г.Мухосранск Ленина 21 каб. 12), должность (Старший юрисконсульт), звание (майор), Ф.И.О. (Иванов И.И.), телефон (333-333), телефон (+7-999-999-9999)
3) Записать в новый файл по маске, с разделителем полей (у меня во всех txt разделитель @TAB, но можно любой другой)
Вся затыка в первом пункте (с остальными я думаю проблем не возникнет), а вот как выбрать все IP и затем проверить в каком из файлов самые свежие данные, сообразить не могу :'(
Господа, помогите с реализацией. :'(
Пред история:
Компьютеры в сети при загрузке отправляют на сервер отчет в текстовом согласно строке
Код:
FileWrite($oFile, @TAB & @ComputerName & @TAB & @IPAddress1 & @TAB & @TAB & $Kasper & @TAB & $Vip & @TAB & $Kript & @TAB & $SUDIS & @TAB & @TAB & @TAB & @TAB & @TAB & @UserName & @CRLF)
где $Kasper, $Vip, $Kript, $SUDIS данные об установленных программах которые возвращают "ДА" или "НЕТ"
в текстовом файле выглядит так:
144-OIT-001 10.225.255.82 ДА ДА ДА ДА Иванов ИИ
057-SO-003 10.225.250.156 ДА НЕТ ДА НЕТ Сидоров СС
057-SO-003 10.225.250.156 ДА НЕТ ДА НЕТ Сидоров СС
Данные отправляются только 1 раз в день, вне зависимости от кол-ва перезагрузок компьютера, и складываются в папку с отчетами по дате:
Код:
$oFile = FileOpen ( 's:\Server\REPORT\' & $FolderDestReport & @MDAY & ' ' & @MON & ' ' & @YEAR & '\REPORT.txt' , 9)
Есть файл User.txt с данными пользователей, вида:
ПРАВОВАЯ ГРУППА 10.225.255.26 г.Мухосранск Ленина 21 каб. 12 ДА НЕТ ДА ДА НЕТ Старший юрисконсульт майор Иванов И.И. 333-333 +7-999-999-9999
1) Считать данные из всех файлов отчета, взяв к примеру один IP адрес, найти самый новый файл отчета содержащий этот IP, к примеру 01 01 2016 программа не была установлена а 10 01 2016 уже стоит, но в этом промежутке комп вообще не включался и соответственно отчет не слал, поэтому надо искать самый новый файл с этим IP, и считать состояние установки программ к примеру это будет - "ДА НЕТ ДА НЕТ", (причем выбрать нужно все уникальные IP во всех файлах).
2) Найти этот IP в User.txt, считать данные полей - подразделение (ПРАВОВАЯ ГРУППА), место установки (г.Мухосранск Ленина 21 каб. 12), должность (Старший юрисконсульт), звание (майор), Ф.И.О. (Иванов И.И.), телефон (333-333), телефон (+7-999-999-9999)
3) Записать в новый файл по маске, с разделителем полей (у меня во всех txt разделитель @TAB, но можно любой другой)
пустое поле/служба/IP/место установки/каспер/випнет/крипто/судис/пустое поле/пустое поле/должность/звание/фио/пустое поле/телеф/телеф сот.
Вся затыка в первом пункте (с остальными я думаю проблем не возникнет), а вот как выбрать все IP и затем проверить в каком из файлов самые свежие данные, сообразить не могу :'(