Sten Berg wrote:
>
> Another try....
>
> Here is the logfile I tested on (I�ve marked were the loops starts):
> LOGFILE
> ---------
> UNNUMBERED INFO
> ------------------
> #loop1:
> Meas.Res. Nr
> - value : 248 (fch)
> Meas.Res. Nr
> - value : 249 (fdh)
> Meas.Res. Nr
> - value : 250 (feh)
> Meas.Res. Nr
> - value : 251 (ffh)
> Meas.Res. Nr
> - value : 253 (fdh)
> Meas.Res. Nr
> - value : 254 (feh)
> Meas.Res. Nr
> - value : (ffh)
> ------------------
> #loop2:
> Meas.Res. Nr
> - value : 0 (00h)
> Meas.Res. Nr
> - value : 1 (01h)
> Meas.Res. Nr
> - value : 2 (02h)
> Meas.Res. Nr
> - value : 3 (00h)
> ------------------
> #loop3:
> Meas.Res. Nr
> - value : 1 (01h)
> Meas.Res. Nr
> - value : 2 (02h)
> Meas.Res. Nr
> - value : 3 (01h)
> Meas.Res. Nr
> - value : 4 (02h)
> ------------------
> end of LOGFILE
This was tested on the supplied data and appears to work correctly:
use constant RANGE_START => 0;
use constant RANGE_STOP => 255;
my ( $loop, $old_value ) = ( 1, RANGE_START - 1 );
while ( <DATA> ) {
( my $curr_value ) = eof DATA ? ( RANGE_STOP + 1 ) : /^- value : (\d+)/ or next;
if ( $old_value >= $curr_value ) {
print "Loop: $loop Value: $_\n" for $old_value + 1 .. RANGE_STOP;
$old_value = RANGE_START - 1;
++$loop;
}
print "Loop: $loop Value: $_\n" for $old_value + 1 .. $curr_value - 1;
$old_value = $curr_value;
}
John
--
use Perl;
program
fulfillment
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>