I changed my code a bit but I¹m still getting errors when trying to use
boost::iostreams::seek as follows:
boost::iostreams::seek(inputStream,position_to_offset(bytesToSkip),BOOST_IO
S::cur);
What is the correct way to go about this?
Gerrick
On 3/13/09 9:29 AM, "Gerrick Bivins"
Hello all, I¹m switching one of my projects over from java to c++. Basically it¹s a gzip file reader, where I¹d like to parse a bunch of numbers (floats, ints, doubles) and in some instances I¹d like to skip some of the data. I¹m a ³noob² to boost and after getting the file reader working using the boost like this: { .... std::ifstream ormodelFile(filenameForTimeStep.c_str(), std::ios_base::in|std::ios_base::binary);
boost::iostreams::filtering_istreambuf compressedFileFilter; compressedFileFilter.push(boost::iostreams::gzip_decompressor()); compressedFileFilter.push(ormodelFile);
this->inputFile.rdbuf(&compressedFileFilter); //where inputFile is a an istream. ... //do the file reading }
I tried to add the skipping parts to the code by simply calling: { ... double value; this->inputFile->seekg(sizeof(double),ios::cur); ... } the fail bit is set on the inputFile istream. Is it possible to do this using boost? I¹m pretty ³green² with boost so I¹m sure it¹s just my misunderstanding of how to use the lib but I couldn¹t find my way around the docs to well.
The best I could find was that I need to somehow make my stream ³seekable² but it wasn¹t too clear to me how to do this. Any help would be greatly appreciated. Gerrick