Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Разложить строку по переменным. (http://forum.oszone.net/showthread.php?t=346698)

garm 13-10-2020 03:18 2936266

Разложить строку по переменным.
 
Всем привет! Есть массив данных вида:
Иван:Петров:1985
Виктор:Иванов:1963
И т.д.
Нужно разложить по переменным каждое значение, чтоб было:
$a = Иван
$b = Петров
$c = 1985.
Может кто-то знает как сделать? Уже голову изломал)

Foreigner 13-10-2020 07:54 2936270

Цитата:

Цитата garm
Есть массив данных »

Где?

Отдельную строку из массива данных:
Код:

$a,$b,$c = 'Иван:Петров:1985' -split ':'

DJ Mogarych 13-10-2020 16:03 2936318

А смысл? Первая строка разложена на переменные, а со второй что делать? Перезаписывать переменные, полученные из первой строки?

Iska 13-10-2020 17:36 2936331

Цитата:

Цитата DJ Mogarych
Перезаписывать переменные, полученные из первой строки? »

Обычно так и делают.

garm 13-10-2020 21:14 2936351

Цитата:

Цитата Foreigner
Где? »

Загружается из файла. Ваш вариант работает, но непонятно, как обрабатывать это циклом. Принцип таков, что мы загружаем данные в массив из тхт файла, а затем берем строку и кладем в переменную. Из переменной не хочет раскладывать))

YuS_2 13-10-2020 22:39 2936363

Цитата:

Цитата garm
Может кто-то знает как сделать? Уже голову изломал »

Легко. И даже уже показали как.
Цитата:

Цитата garm
Принцип таков, что мы загружаем данные в массив из тхт файла, а затем берем строку и кладем в переменную. »

Вопрос только в том, какова конечная цель задачи. Об этом Вы, почему-то, умалчиваете.
А именно:
Образец исходных данных и не пример одной строки, а реальный файл/часть файла (сами данные можете изменить, в целях конфиденциальности) с определенной кодировкой, с указанием примерного размера и т.д.
Выходные данные - в каком виде их необходимо получать (вывод на консоль, в файл или ещё куда). В общем, необходимы исходные данные.
Покажите суть задачи и тогда, возможно, Вам подскажут как её правильно решить. А принципы различных "костылей", мы Вам и так можем показать стотыщвариантов... :)

Foreigner 13-10-2020 23:03 2936369

garm,

Код:

foreach ($line in (Get-Content file.txt))
{
    $a,$b,$c = $line.Split(':')

    что-то делаем с $a, $b и $с
}

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

greg zakharov 14-10-2020 11:27 2936413

Цитата:

Цитата Foreigner
Код:

foreach ($line in (Get-Content file.txt))...
Если весь файл в таком формате, то его можно обрабатывать и как CSV.

Не можно, а нужно, так как на выходе получим массив PSCustomObject и тогда всякая блажь загонять каждую строку в отдельности по переменным отпадёт. А вот если бы разделителей было несколько, или по тексту встречались символы, например, хангыль, то лучше сделать нечто вроде токенизации.

DJ Mogarych 14-10-2020 12:18 2936418

Цитата:

Цитата Iska
Обычно так и делают »

...сохраняя память предков, передавших нам идеалы и веру в Бога, а также преемственность в развитии Российского государства.


Время: 20:14.

Время: 20:14.
© OSzone.net 2001-