У нас есть отчеты, в которых нам нужно переформатировать определенные строки текста в каждой записи (в настоящее время это делается вручную), однако они приходят в один большой текстовый файл. Каждая запись может иметь длину от 64 до 70 строк, но при печати она будет составлять одну запись на страницу, поэтому нам нужно знать, какова длина каждой записи, чтобы их можно было правильно отформатировать и записать в новый файл.
Поскольку каждая запись начинается и заканчивается ключевыми словами, мы можем подсчитать количество строк между ними, чтобы узнать, сколько строк мы имеем дело, но как нам начать чтение с этой позиции?
Например, первая запись начинается со строки 72 и имеет длину 68 строк. Таким образом, следующая запись начнется с 145 (68 строк, плюс ключевые слова нижнего колонтитула и пустые строки). Как мы начнем со строки 145, а затем прочитаем число строк «х»?
Я думал о «До / Пока» или «До / До», но, похоже, это не работает. Я использую До / До, и он либо возвращает пустые строки, либо повторяет одну строку снова и снова. Кроме того, это не помогает начать чтение файла с определенной строки.
$path = "\somefolder\somefile.txt"
$array = @()
$linecount = 0
#Read the file; this is the Header section
#Number of lines may vary
foreach($line in Get-Content $path)
{
$linecount++
If($line -match "End of Header")
{
break
}
else
{
$array += $line
}
}
Это насколько я получил. Ничто из того, что я делаю, не заставит следующий раздел начать чтение с номера строки и продолжить поиск файла оттуда. Любая помощь будет оценена.