![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Вывод элементов списка в виде массива |
|
|
PowerShell - Вывод элементов списка в виде массива
|
Ветеран Сообщения: 4635 |
Уважаемые, здравствуйте!
Задалcя вопросом обработки *.xml файлов, вроде бы даже добился какого-никакого решения поставленной перед Собою задачи, но вот одного не могу разрешить: вывод элемента списка в виде массива, Powershell его "подрезает" и отображает только несколько первых символов. Список объявляю так: Наполняю так: $aSumItog = @(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); foreach ($item in $tmplist2) { $list2.Add([PSCustomObject]@{cFIO = $item; cSum = $aSumItog}) } , а хотелось бы видеть все столбцы массива. Может, кто подскажет как этого добиться? |
|
Отправлено: 19:24, 25-10-2023 |
Deadooshka Сообщения: 2566
|
Профиль | Отправить PM | Цитировать |
Отправлено: 01:08, 26-10-2023 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 250
|
Профиль | Отправить PM | Цитировать |
Отправлено: 04:44, 26-10-2023 | #3 |
Ветеран Сообщения: 4635
|
Профиль | Отправить PM | Цитировать Цитата Serguei Kouzmine:
Цитата Sham:
Вчера уже выкрутился созданием нового списка и впихиванием в него элементов массива, да, топорно получилось. |
||
Отправлено: 06:23, 26-10-2023 | #4 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 10:13, 26-10-2023 | #5 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата NickM:
один из вариантов: |
|
------- Отправлено: 13:30, 26-10-2023 | #6 |
Ветеран Сообщения: 4635
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Поставленный вопрос решил, но очень мало опыта работы с powershell, практически нулевой. Но, желаемого достиг, правда с излишним быдлокодом, да (стесняюсь полностью код выложить, там полный атас). Поделюсь, может гуру, при желании, подскажут, как это упростить? Пару блоков, которые Мне кажутся излишними, но не знаю как их упростить: 1. В этом пункте требуется получить список $list1 с уникальными текстовыми значениями и инициализированным массивом чисел. Наполняю два списка данными из *.xml, $tmplist1 используется как временный, для сортировки. В $list1 и $list3 производится работа с массивом числовых значений: #Основные массивы-списки для всех требуемых значений $list1 = New-Object System.Collections.Generic.List[System.Object]; $list3 = New-Object System.Collections.Generic.List[System.Object]; ... $list3.Add([PSCustomObject]@{cPeriod = $cPeriod; cFIO = $cFIO; cINN = $cINN; cSNILS = $cSNILS; cmes = $cMes; cSum = $cSum}); ... #Подготовим временный массив - выполним сортировку и уберём дубли сотрудников $tmplist1 = New-Object System.Collections.Generic.List[System.Object]; $tmplist1 = $list3 | Select-Object cFIO, cINN, cSNILS | Sort-Object cFIO, cINN, cSNILS | Get-Unique -AsString #Инициализируем список c перс.данными и пустым массивом для сумм $aSumItog = @(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); foreach ($item in $tmplist1) { $list1.Add([PSCustomObject]@{cFIO = $item.cFIO; cINN = $item.cINN; cSNILS = $item.cSNILS; cSum = $aSumItog}) } 2. Как итог выполнения всего кода, наполненный рабочий список $list1 требуется вывести в *.csv с разделителем [char]9, т.е. сформировать табличную часть. Реализовал, опять же, с использованием дополнительного списка, где наполняю этот список: $tmplist3 = [System.Collections.Generic.List[string]]::new() foreach ($item in $list1) { $tmplist3.Add($item.cFIO + [char]9 + $item.cINN + [char]9 + $item.cSNILS + [char]9 + ($item.cSum -join "`t")) } |
|
Последний раз редактировалось NickM, 26-10-2023 в 15:31. Отправлено: 14:09, 26-10-2023 | #7 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата NickM:
Цитата NickM:
Т.е. нужен пример файла (а лучше файлов) с исходными данными (конфиденциальную инфу можно заменить какими-нибудь фейками) и желаемый результат, т.е. то, что необходимо получить из исходных данных. Промежуточные "просмотры" данных в консоли, не имеют смысла обычно, но если сильно желание, то тоже надо бы указать в каком виде хочется их просматривать. |
||
------- Отправлено: 09:45, 27-10-2023 | #8 |
Ветеран Сообщения: 4635
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Сверка заключается в том, что бы проверить соответствие всех перс.данных по физ.лицам отражённых в трёх месячных формах 1151162 с квартальной формой 1151111. Для этого, эти перс.данные из *.xml файлов извлекаются, помещаются в списки, а списки уже построчно сравниваются; Цитата YuS_2:
Заменил и приложил; Цитата YuS_2:
|
|||
Последний раз редактировалось NickM, 27-10-2023 в 11:58. Отправлено: 11:28, 27-10-2023 | #9 |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата NickM:
Цитата NickM:
И да, судя по файлам, количество элементов (и атрибутов элементов тоже) в них различное... а могут быть ещё какие-нибудь поля, которых нет в примерах? Если парсить xml, то нужны будут наименования элементов, по которым необходимо делать выборку... или там просто всё подряд, что найдем, то и "выплюнуть" на выход? |
||
------- Отправлено: 14:43, 27-10-2023 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Анализ элементов числового массива | kelevara | Скриптовые языки администрирования Windows | 8 | 08-05-2013 16:40 | |
C/C++ - Подсчет суммы положительных элементов массива | antoiiika | Программирование и базы данных | 2 | 19-11-2011 05:20 | |
PowerShell - Вывод нумерации элементов массива в консоль | tarasov.evgeny | Скриптовые языки администрирования Windows | 0 | 12-04-2011 13:36 | |
C/C++ - [решено] Найти среднее геометрическое элементов массива А (С++) | kmi567 | Программирование и базы данных | 2 | 10-12-2010 05:06 | |
С/С++ | Выбор 10 случайных элементов из массива | Vovius | Программирование и базы данных | 5 | 29-08-2006 19:37 |
|