Tekst "Pana Tadeusza" z podziałem na księgi i wersety.

0

Piszę właśnie program, którego zadaniem jest wyświetlenie określonego zakresu wersetów z określonej księgi utworu. Treść jest zapisana w pliku tekstowym z oddzielaniem ksiąg znakiem GS i wersetów - znakiem RS. Sam program działa całkowicie poprawnie na danych przykładowych. W jaki sposób mógłbym wygenerować na bazie tekstu dostępnego w Internecie właściwy plik ze znakami rozdzielającymi w odpowiednich miejscach?

0

Przy wykorzystaniu tego źródła możesz użyć tego skryptu, podając plik tekstowy na standardowe wejście:

#!/usr/bin/perl -w
#*******************************************************************************
use strict;
use warnings;
use utf8;
#===============================================================================
my $prolog = 1;
my $book_prolog = 0;
my $book_title;
my $output = '';
local $/ = "\r\n";
binmode STDIN, ':utf8';
while(<>)
{   chomp;
    if( $prolog )
    {   $prolog = 0 if /^ISBN /;
        next;
    }
    next if /^\s*$/;
    unless( $book_prolog )
    {   if( /^Księga (?:pierwsza|druga|trzecia|czwarta|piąta|szósta|siódma|ósma|dziewiąta|dziesiąta|jedenasta|dwunasta)$/ )
        {   $book_prolog = 1;
            $book_title = 0;
            $output =~ s/.$//;
            $output .= "\x1d";
            next;
        }
    }else
    {   unless( $book_title )
        {   $book_title = 1;
            next;
        }
        $book_prolog = 0;
        next;
    }
    last if /^-/;
    s/^\s*//;
    $output .= "$_\x1e";
}
print substr( $output, 1, length( $output ) - 2 );
#*******************************************************************************
0
overcq napisał(a):

Przy wykorzystaniu tego źródła możesz użyć tego skryptu, podając plik tekstowy na standardowe wejście:

Błąd Perla.

substr outside of string at pt.pl line 39, <> chunk 1.
Use of uninitialized value in print at pt.pl line 39, <> chunk 1.
0
Manna5 napisał(a):

Błąd Perla.

Dziwne, u mnie działa.

0

W n++ to kilka podmian + ewentualna korekta na podstawie zalinkowanego tu pliku.
Nie trzeba pisać skryptu, minuta roboty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1