Dr Manhattan has asked for the wisdom of the Perl Monks concerning the following question:
Hi all
I am parsing a file by sentences and outputting them with byte count at the start of each sentence.
my @byte_count; push (@byte_count, 0); my $length = scalar(@sentences); for (my $x = 0; $x < $length; $x++) { my $count; $count = length(Encode::encode utf8($sentence[$x])); $count += $byte_count[$x]; $count += 9; push (@byte_count, $count); } open (Out, ">:utf8", "Sentences and byte count.txt") or die "Can't ope +n"; for (my $x = 0; $x < $length; $x++) { printf Out "%08d$sentences[$x]\n", $byte_count[$x]; }
I add the 9 for the 8 digits at the beginning of each line plus the newline at the previous line
The problem is when I use the 'seek' function, it works perfectly fine for the first 3 lines en then somehow breaks. After the 3rd line when I seek, it outputs from somewhere around the middle of the previous entry
use warnings; use utf8; open (FILE, "<:utf8", "Sentences and byte count.txt") or die "Can't op +en"; seek(FILE, 656, 0); my $line = <FILE>; print "$line";
Somehow the byte counting is missing something somewhere. Any ideas?
Thanks in advance for any help, much appreciated
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Byte counts and Seek function
by chromatic (Archbishop) on Aug 27, 2013 at 21:59 UTC | |
by choroba (Cardinal) on Aug 27, 2013 at 22:48 UTC | |
by chromatic (Archbishop) on Aug 27, 2013 at 23:18 UTC | |
by AnomalousMonk (Archbishop) on Aug 27, 2013 at 22:40 UTC | |
by chromatic (Archbishop) on Aug 27, 2013 at 22:42 UTC | |
by AnomalousMonk (Archbishop) on Aug 27, 2013 at 22:50 UTC | |
by vsespb (Chaplain) on Sep 01, 2013 at 21:01 UTC | |
|