Показать полную графическую версию : Разложить строку по переменным.
Всем привет! Есть массив данных вида:
Иван:Петров:1985
Виктор:Иванов:1963
И т.д.
Нужно разложить по переменным каждое значение, чтоб было:
$a = Иван
$b = Петров
$c = 1985.
Может кто-то знает как сделать? Уже голову изломал)
Foreigner
13-10-2020, 07:54
Есть массив данных »
Где?
Отдельную строку из массива данных:
$a,$b,$c = 'Иван:Петров:1985' -split ':'
DJ Mogarych
13-10-2020, 16:03
А смысл? Первая строка разложена на переменные, а со второй что делать? Перезаписывать переменные, полученные из первой строки?
Перезаписывать переменные, полученные из первой строки? »
Обычно так и делают.
Где? »
Загружается из файла. Ваш вариант работает, но непонятно, как обрабатывать это циклом. Принцип таков, что мы загружаем данные в массив из тхт файла, а затем берем строку и кладем в переменную. Из переменной не хочет раскладывать))
Может кто-то знает как сделать? Уже голову изломал »
Легко. И даже уже показали как.
Принцип таков, что мы загружаем данные в массив из тхт файла, а затем берем строку и кладем в переменную. »
Вопрос только в том, какова конечная цель задачи. Об этом Вы, почему-то, умалчиваете.
А именно:
Образец исходных данных и не пример одной строки, а реальный файл/часть файла (сами данные можете изменить, в целях конфиденциальности) с определенной кодировкой, с указанием примерного размера и т.д.
Выходные данные - в каком виде их необходимо получать (вывод на консоль, в файл или ещё куда). В общем, необходимы исходные данные.
Покажите суть задачи и тогда, возможно, Вам подскажут как её правильно решить. А принципы различных "костылей", мы Вам и так можем показать стотыщвариантов... :)
Foreigner
13-10-2020, 23:03
garm,
foreach ($line in (Get-Content file.txt))
{
$a,$b,$c = $line.Split(':')
что-то делаем с $a, $b и $с
}
Напишите подробней, что должно быть в результате. Если весь файл в таком формате, то его можно обрабатывать и как CSV.
greg zakharov
14-10-2020, 11:27
foreach ($line in (Get-Content file.txt))...Если весь файл в таком формате, то его можно обрабатывать и как CSV.
Не можно, а нужно, так как на выходе получим массив PSCustomObject и тогда всякая блажь загонять каждую строку в отдельности по переменным отпадёт. А вот если бы разделителей было несколько, или по тексту встречались символы, например, хангыль, то лучше сделать нечто вроде токенизации (http://forum.oszone.net/showpost.php?p=2936056&postcount=6).
DJ Mogarych
14-10-2020, 12:18
Обычно так и делают »
...сохраняя память предков, передавших нам идеалы и веру в Бога, а также преемственность в развитии Российского государства.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.