【发布时间】:2017-01-30 23:33:43
【问题描述】:
我正在读取一个由空白行分隔的 CSV 文件。我想在数组中捕获的空白行之间的每个部分。其中数组将类似于以下内容。
array[section0][row0]
array[section0][row1]
array[section0][row2]
array[section1][row0]
array[section1][row1]
array[section1][row2]
CSV 文件的格式类似于以下。
this,is,section,one,line,one 这,是,部分,一,行,二 ,,,,,,,,,,,,,,,,,,,,, 这,是,节,二,线,一 这,是,部分,二,行,二 这,是,部分,二,行,三 部分,两个,带,额外,逗号,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, 这,是,节,三,线,一 这,是,部分,三,行,二 这,是,节,三,线,三 部分,三,带,额外,逗号,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, 这,是,节,四,线,一 这,是,部分,四,行,二 这,是,部分,四,行,三 部分,四,带,额外,逗号,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,
我正在尝试将数组放入$section[sectionnumber][sectionrownumber]。但这失败了。
我收到错误提示 “索引超出范围” 或 “无法索引到空数组”。
我确信这与数组初始化有关。我就是无法让它工作。
$file = "filename"
$path = Split-Path $file
$import = Get-Content $file
#find blank rows
$r = 0
$blank = "yes"
$firstblank = "yes"
$sectionnumber = 0
#initialize section array
$section = ,@()
foreach ($row in $import) {
if ($row -ne ",,,,,,,,,,,,,,,,,,,,,") {
#not a blank row
if ($firstblank -eq "yes") {
$blank = "no"
$firstblank = "no"
} elseif($blank -eq "yes") {
$blank = "no"
$r++
} else {}
#initialize array for multidemension
$section[$r][$sectionnumber] = $row
$sectionnumber++
} else {
#this is a blank row
if ($blank = "no") {
$blank = "yes"
$sectionnumber = 0
} else {
$blank = "yes"
$sectionnumber = 0
}
}
}
Write-Host $section
【问题讨论】:
标签: arrays powershell csv