functions/ConvertFrom-FixedWidth.ps1
function ConvertFrom-FixedWidth { Param( [parameter(Mandatory = $true)] [object] $FixedWidthTableText, [parameter(Mandatory = $true)] [object] $ColumnIndexArray ) $columns = $ColumnIndexArray | Sort-Object $delimited = $FixedWidthTableText | Foreach-Object { $currentIndex = 0 $priorIndex = 0 $line = $_ $newLine = "" $firstColumn = $true $columns | Foreach-Object { $currentIndex = $_ if ($firstColumn -ne $true) { $newLine = $newLine + "," } $newLine = $newLine + $line.Substring($priorIndex, $currentIndex - $priorIndex).Trim() $priorIndex = $_ $firstColumn = $false } $newLine = $newLine +"," + $_.Substring($currentIndex, $_.Length-$currentIndex).Trim() $newLine } $converted = $delimited | ConvertFrom-Csv return $converted } |