Re: Reading a file from a specified range

From: mkarja (mmmc_reptail_at_hotmail.com)
Date: 10/20/04


Date: 20 Oct 2004 05:37:45 -0700


> [snip]
>
> Ok, try this:
>
> Given the following data file:
>
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXX BEFORE XXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXX TEST LINE XXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXX AFTER XXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> # include <iostream>
> # include <fstream>
> # include <ostream>
> # include <string>
> # include <cstddef>
>
> int main()
> {
> std::ifstream InFile( "100000.txt", std::ios_base::binary );
>
> std::string Buffer;
> std::ifstream::pos_type OneLine( 36 );
>
> while( std::getline( InFile, Buffer ) )
> {
> if( Buffer.find( "TEST LINE" ) != std::string::npos )
> break;
> }
>
> InFile.seekg( -OneLine*3, std::ios_base::cur );
>
> std::size_t NrLines( 6 );
> while( std::getline( InFile, Buffer ) && --NrLines > 0 )
> std::cout << Buffer << std::endl;
>
> return 0;
> }
>
> -- PRODUCES THE FOLOWING OUTPUT --
>
> XXXXXXXXXXXXX BEFORE XXXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXX TEST LINE XXXXXXXXXXXX
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> XXXXXXXXXXXXX AFTER XXXXXXXXXXXXXX
>
> HTH.
> Chris Val

Thanks a million. This works just as I needed.
Three hip, hip, hurraahs to you :)

----
mkarja