use strict; my $position = 0; my $line = 1; my $oldbyte = 0; my $filesize = -s $ARGV[0]; my $byte; my $oldbyte; print "File size is $filesize bytes.\n"; open(INPUT,$ARGV[0]) || die "can't open $ARGV[0]:\n"; while ($position < ($filesize - 1)){ read INPUT, $byte, 1, 0; my $val = ord $byte; if ( $val == 10 ) { if ( $oldbyte ==1) { $line++; $oldbyte = -1; } $oldbyte++; } if ( ($val < 32 && $val != 10 || $val > 126) ) { print "Line $line byte value $val at offset $position is out of ASCI +I text range!\n"; } #print ord $byte,"\n"; $position++; undef $byte; seek(INPUT, $position, 0); } print "$line lines in file!\n";
In reply to Find illegal ASCII characters by fmogavero
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |