Я очень новичок в кодировании.
У меня есть данные в текстовом файле, отформатированном следующим образом:
#
PROPERTY_A: TEXT1
PROPERTY_B: UNIT1
#
PROPERTY_A: TEXT2
PROPERTY_B: UNIT2
#
#
1 2
3 4
Я хочу вывести его в виде таблицы:
TEXT1 TEXT2
UNIT1 UNIT2
1 2
3 4
Я понимаю, как читать текстовый файл в массив строк, а затем как использовать split () для разбора каждой строки и массива строк. Я хочу записать данные в таблицу со свойствами в качестве заголовков каждого столбца, поэтому мне нужно будет разбивать их, используя «:», пока я не прочту 2 последовательные строки с включенным хешем, а затем перейду к «» для разделения.
Использование этого кода дает мне бесконечный цикл, который не возвращает никакого значения, даже если оба отдельных разбиения работают нормально.
my $dataAsText = SomeFunction->Run($imputDocument);
for (my $ln = 0; < $dataAsText->Lines->Count; ++$ln;)
my $line = $dataAsText->Lines($ln)
do {
my @words = split ($line, ‘: ‘, 2);
# then pass @words[1] to the first or second row of each column
} until ($line eq ‘#’ && $line + 1 eq ‘#’);
my @words = split ($line, ‘ ‘);
# then pass each @words values to its corresponding column
}
Как мне написать фрагмент кода, чтобы проверить наличие 2 последовательных строк с символами хеша, а затем изменить способ разделения строк перед их отправкой в массивы?
Просто, чтобы уточнить, что окончательный документ данных может иметь сотни тысяч строк для чтения, это пример структуры.