>>>>open (F,"text.txt");
>>>>my @fil=<F>;
>>>>close F;
>>>>
>>>>Надо полученный массив разбить на n равных частей.
>>>>При этом в каждой части слово не должно рваться.
>>>
>>>Ничего не понятно из условия.
>>>
>>>Слова в файле как записаны?
>>>А если массив будет из n+1 элемента?
>>Сначала надо посчитать кол-во слов в массиве,
>>затем кол-во разелить на n, и каждую часть
>>запихнуть в новый массив или хеш.
>
>Допустим в файле 13 слов, а массив должен быть из N =
>10.
>Какое тут разбиение должно быть?
>Можно ведь тупо сделать в первые 9 элементов по одному слову а
>в 10-ый остальные 4 :)
Так и хочу. :-)
В реальности будет от 2000 до 4000 слов, и надо разбить
на 2, или 3 или 5 массива.
При этом слова нельзя рвать. Я сделал, но сова рвуться.use locale;
my ($out_text,$popravka,$stop_len);
my $columns = 75;
my $td = 3;
my $widthtd = int 100/$td+.9;
my $maxlen = 3410;
my $pp = "<p class='par'>";
my $alltext = qq~ ...<a href="/?action=viewtext&id=23" target="win">весь текст</a>~;
my $alltextlen = length $alltext;
open (FILE,"statia.txt") or die ("Error:$!");
while (<FILE>) {
chomp;
$i++;
unless (length) {$_ = "Ўь" };
next unless length;
$txt .= "$_ ";
my @dat = split(/ /,$_);
for (my $j=0; $j <=@dat; $j++) {
$self{$i}{$j} = $dat[$j];
# $self{$i+$j} = $dat[$j];
# push (@txt0,$dat[$j]);
}
}
close FILE;
$txt =~ s/Ўь Ўь//g;
$txt = "Ўь$txt";
my $len = $alltextlen + length $txt;
my $koeff = ($len/$td)+1;
for (my $j=0; $j <$td; $j++) {
$text = substr $txt, $koeff*$j, $koeff;
$text =~ /(.)$/i; $rex = $1;
$text =~ s/Ўь/$pp/g;
print qq~\t<TD valign="top" width="$widthtd%">$text$popravka</TD>\n~;
}
undef $txt; undef $text;
if ($len > $maxlen) {
# $out_text = substr("$out_text",0,$maxlen);
# $out_text = qq~$out_text $alltext~;
# $len = $maxlen;
}
print qq~
<style type="text/css">
<!--
TABLE.text TD { font:normal normal 9pt Arial,Verdana,sans-serif; text-align:justify; }
P.par { text-indent:1em; text-align:justify; margin-top:2pt; }
-->
</style>
<TABLE width="70%" class="text" border="0" cellspacing="16" cellpadding="0">
<TR>
$out_text
</TR>
</TABLE>
~;