我正在将文本文件转换为目前在内存中保存的csv,直到我的编辑结束。我用4或6标记每一行。我到了一个点,我逐行遍历表。如果它有6我做一件事,4我做其他事。它会像,
6,4,6,4,4,6,4,4,6
每个6之间有4个数字。为了跟踪4个,我有一个计数器。我还有一个计数每行的计数器。当我想通过rowCounter指定一行时,问题出现了。我希望能够做到像$ rowCount这样的东西 - 当我进入6并且fourCount不为零时。这样我就可以将数据输出到它上面的第4行。
$fourCount = 0
$rowCount = 0
foreach($row in $ResultsTable){
if ($row.'RowType' -eq 6) {
if ($fourCount -gt 0) {
#Sort-Object {$row.'CheckDate'} -descending
$remainAmount = $currentAmount - $checkAmount
Write-Host "Counter no longer 0, resetting counter"
$currentAmount = @()
}
$checkAmount = $row.'check'
Write-Host "This line starts with 6"
$rowCount = $rowCount + 1
} elseif ($row.'RowType' -eq 4) {
$currentAmount += $row.'check'
$rowCount = $rowCount + 1
$fourCount++
Write-Host "This line starts with 4"
} else {
Continue
}
}
以下是我填充CSV的每一行的方法
$files = Get-ChildItem $source *.txt
$content = Get-Content $files
foreach ($line in $content) {
if ($line.StartsWith("6")) {
$output = $ResultsTable.Rows.Add($line.Substring(0,1), $line.Substring(1,3), $line.Substring(4,3), $line.Substring(7,10), $line.Substring(17,20), $line.Substring(37,8))
} elseif ($line.StartsWith("4")) {
$cleanInvNum = $line.Substring(11).Replace("-A", "")
$output = $ResultsTable.Rows.Add($line.Substring(0,1), $line.Substring(1,3), $line.Substring(4,3), " ", " ", " ", $cleanInvNum, " ")
}
}
有谁知道怎么做?
答案 0 :(得分:1)
根据评论,您需要返回原始集合,以获取循环枚举器并将该行引用为:
$ResultsTable.Rows[$rowCount]