Как отделить несколько таблиц от простого текстового файла и отобразить только одну таблицу с помощью perl? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь отобразить только таблицу и несколько столбцов из текстового файла. Тем не менее, текстовый файл содержит несколько таблиц, и я не знаю, как извлечь только таблицу без жесткого кодирования номера строки (строки). Ниже показано, как выглядит часть таблицы, есть некоторые с 20 строками. Другие таблицы выглядят так же с другими именами заголовков.

+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------------+
| Query Name | TEV | CRV | GWB | UDW | RWE | CWO | UAD | RAO | CAG | RRV | SV   | Run status |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------------+
| abc        | 3   | 3   | 0   | 0   | 0   | 0   | 0   | 0   | 0   | 3   | must | OK         |
+------------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------------+

Это задание, которое я получил, которое требует, чтобы я отображал только несколько указанных пользователем столбцов из таблицы. Однако в текстовом файле существует более 4 таблиц. Я попытался взять только номер строки, который включает таблицу, разделить их на массив и отобразить в соответствии с тем, какой столбец хочет пользователь, но мой преподаватель хочет, чтобы я перешел в динамическое состояние, а не в жестком коде, потому что он хочет, чтобы я учитывал другие возможность отображения другой таблицы тоже.

    open(FH, '<', $filename) or die $!;

    my $count = 1;
    my @column = [];
      while(my $lines = <FH>){
        @column = split (/\|/, $lines);
        if (($count >=68) && ($count <104)) { #68 to 104 are the rows for 
        #the table i am trying to display
           print "$column[1]";
           print "$column[2]";
           print "$column[11]";
           print "\n";
      }
     $count = $count + 1;
    }

    close(FH);

Вывод правильный, но, как я уже говорил, мой преподаватель не хочет, чтобы он был жестко запрограммирован. У меня очень ограниченные знания в области программирования и Perl. Я хотел бы заранее поблагодарить вас за то, что вы уделили мне немного вашего драгоценного времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...