Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Массив строк

Ответить
Настройки темы
PowerShell - [решено] Массив строк

Пользователь


Сообщения: 80
Благодарности: 1

Профиль | Отправить PM | Цитировать


Добрый День! Существует файл следующего содержания:
Статус
Иванов
Иван
Сергеевич
23-45
Статус
Васечкин
Алексей
Иванович
23-45
Статус
Петров
Антон
Владимирович
56-76


Возможно ли преобразовать что-то примерно следующие:
Статус Иванов Иван Сергеевич 34-45
Статус Васечкин Алексей Иванович 23-45
Статус Петров Антон Владимирович 56-76

Т.е. я теоретически понимаю, что отправная точка должно быть слово "Статус" плюс количество строк. Как-то бы преобразовать в pscustomobject.

Отправлено: 16:50, 07-03-2020

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата lox-ness:
Существует файл следующего содержания: »
Упакуйте его в архив и приложите к сообщению.

Цитата lox-ness:
Возможно ли преобразовать что-то примерно следующие: »
«Во что-то следующее»?

Ну, например:
Код: Выделить весь код
$aData = @(Get-Content -Path 'C:\Мои проекты\0304\0001.txt')

for($i = 0; $i -lt $aData.Count; $i = $i + 5) {
    $aData[$i..($i + 4)] -join ' '
}
Цитата lox-ness:
…в pscustomobject. »
Это ничего не говорит о его требуемой структуре.

Последний раз редактировалось Iska, 07-03-2020 в 17:25.


Отправлено: 17:11, 07-03-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 80
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вы правы. Существует массив строк из которых необходимо выбрать Номер и Статус Направлен в группу и только у Запросов
Нужно получить что-то, который потом необходимо передать в Excel или csv
Думаю если удаться таким образом преобразовать
Код: Выделить весь код
pscustomobject @{
Номер = $Number
Статус = $Status}
, то проблем экспортировать не будет или может есть возможность сразу передать в Excel или csv

Последний раз редактировалось lox-ness, 08-03-2020 в 05:47. Причина: Файл прикрепить нужно


Отправлено: 17:36, 07-03-2020 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата lox-ness:
Существует массив строк из которых необходимо выбрать Номер и Статус Направлен в группу и только у Запросов »
Ничего не понятно. Старайтесь использовать точки и запятые по назначению.

У Вас есть формальное описание структуры этого файла? Если есть — выкладывайте. Если нет — рассказывайте, что знаете.

Я вижу, что у нас есть набор сущностей (назовём их сообщениями), объединённых некой логикой:
Скрытый текст

Вопрос первый — длина сообщений фиксированная (в строках) или произвольная? Если фиксированная — то какая? Если произвольная — на что нужно ориентироваться в отслеживании начала и конца сообщения? Откуда взялись пробелы перед последней датой? Последняя пустая строка — реальна?

Отправлено: 18:59, 07-03-2020 | #4


Пользователь


Сообщения: 80
Благодарности: 1

Профиль | Отправить PM | Цитировать


Я смогу изменить входные данные, останутся только Запросы. Один "Запрос" - это 9 строчек из приложенного файла (Нарядов не будет)
Согласно коду приведенному Вами выше, получается новый массив который зрительно выглядит как надо. Новый массив, нужно еще раз преобразовать (или старый сразу)
в вариант - "Номер Статус ФИО" т.е. отсечь лишнюю информацию.
После получения нового объекта передать его в Excel.

Отправлено: 20:06, 07-03-2020 | #5


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


lox-ness, Вы могли бы просто ответить на заданные мною вопросы?

Отправлено: 20:23, 07-03-2020 | #6


Пользователь


Сообщения: 80
Благодарности: 1

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: zip test1.zip
(381 байт, 14 просмотров)

Я стараюсь ответить на все Ваши вопросы.
Цитата:
Если произвольная — на что нужно ориентироваться в отслеживании начала и конца сообщения?
Начало и конец - не изменяются
Цитата:
Откуда взялись пробелы перед последней датой? Последняя пустая строка — реальна?
Этого не будет после изменения входных данных.

Отправлено: 20:40, 07-03-2020 | #7


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата lox-ness:
Начало и конец - не изменяются »
Хорошо. Перефразирую — каким именно образом можно определить, что вот здесь вот — начало сообщения, а вот здесь вот — конец сообщения?

Цитата lox-ness:
Этого не будет после изменения входных данных. »
Во втором выложенном Вами файле пустая строка по-прежнему есть.

Отправлено: 20:56, 07-03-2020 | #8


Пользователь


Сообщения: 80
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата:
Хорошо. Перефразирую — каким именно образом можно определить, что вот здесь вот — начало сообщения, а вот здесь вот — конец сообщения?
Начало - Запрос; Конец - 16/12/19 08:24:17 (последняя дата)

Т.е. получиться - Запрос ЗАП.. 1-Направлен в группу М... (12345678) запрос 02/12/19 08:24:22 09/12/19 08:24:17 16/12/19 08:24:17

Отправлено: 21:10, 07-03-2020 | #9


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


lox-ness, мне сложно понять, чего Вы хотите.

Код: Выделить весь код
$sDelimiter = 'Запрос' + [Environment]::NewLine

$aData = (Get-Content -Path 'C:\Мои проекты\0304\test1.txt' -Raw) -csplit $sDelimiter

-join (
    $aData[1..($aData.Count - 1)] | ForEach-Object -Process {
        ($sDelimiter + $_ -replace [Environment]::NewLine, " ") + [Environment]::NewLine
    }
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:07, 08-03-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Массив строк

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Удаление из txt файлов не нужных строк и дубликатов строк. voler Скриптовые языки администрирования Windows 1 26-02-2018 14:10
VBS/WSH/JS - массив из строк, поиск по строке matson Скриптовые языки администрирования Windows 11 09-06-2017 21:35
CMD/BAT - [решено] Удаление пустых строк, пробелов и/или конца строк blackeangel Скриптовые языки администрирования Windows 12 11-03-2016 21:49
CMD/BAT - Массив Starter1 Скриптовые языки администрирования Windows 4 25-03-2012 13:51
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже Alk-13 Скриптовые языки администрирования Windows 0 10-02-2012 18:06




 
Переход