【发布时间】:2019-03-14 20:54:58
【问题描述】:
我对编码很陌生。
我有一个文本文件中的数据,格式如下:
#
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 个带有哈希符号的连续行,然后在将它们发送到数组之前更改这些行的拆分方式?
只是为了澄清最终的数据文档可能有数十万行要阅读,这是一个示例结构。
【问题讨论】:
-
我不明白你想要什么输出——你能用你显示的文件中的数据来显示吗?此外,显示的代码本身并没有多大意义——你能展示更多,特别是你如何阅读和迭代行吗?
-
感谢您的澄清。但是:当您说“使用此代码给我”时,它似乎指的是您显示的代码,这是不可能的,因为这与正确的 Perl 相去甚远,并且无法编译(在许多情况下)。
标签: perl