Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > stream converting

Reply
Thread Tools

stream converting

 
 
Moritz Tacke
Guest
Posts: n/a
 
      10-31-2003
Hi there!

I have a problem concerning the file input to a c++ program: the
expected input is either in binary or in some kind of text format;
what I finally want is the binary version.
I know how to translate between these two versions and would like to
write some kind of wrapper. This wrapper should open the text file and
provide an istream which behaves exactly like the ifstream of an
equivalent binary file would. Is there a smart way to do this?
Greetings,
Moritz
 
Reply With Quote
 
 
 
 
Mike Wahler
Guest
Posts: n/a
 
      10-31-2003

"Moritz Tacke" <(E-Mail Removed)-freiburg.de> wrote in message
news:(E-Mail Removed) om...
> Hi there!
>
> I have a problem concerning the file input to a c++ program: the
> expected input is either in binary or in some kind of text format;
> what I finally want is the binary version.
> I know how to translate between these two versions and would like to
> write some kind of wrapper. This wrapper should open the text file and
> provide an istream which behaves exactly like the ifstream of an
> equivalent binary file would. Is there a smart way to do this?


No 'wrappers' or 'smartness' required:

std::ifstream input("myfile.txt", std::ios::binary);

-Mike


 
Reply With Quote
 
 
 
 
Moritz Tacke
Guest
Posts: n/a
 
      11-01-2003
>
> No 'wrappers' or 'smartness' required:
>
> std::ifstream input("myfile.txt", std::ios::binary);
>
> -Mike


Well, it looks like I didn't express myself correctly: the binary
format and the "text"-format are qualitatively different. The text
format is some kind of encoding of the binary one, where four bytes of
"text" are used to encode three bytes of the "binary".
What I am trying to do right now is to write some kind of wrapper
which reads the four "text"-bytes and converts them to the three
corresponding binary-bytes; this wrapper should be used by the other
parts of the program as if it was an ifstream which directly reads the
binary file.

Hm. I hope I did succeed in formulating the point this time...
Greetings!
Moritz
 
Reply With Quote
 
Ivan Vecerina
Guest
Posts: n/a
 
      11-03-2003
"Moritz Tacke" <(E-Mail Removed)-freiburg.de> wrote in message
news:(E-Mail Removed) om...
....
| > std::ifstream input("myfile.txt", std::ios::binary);
....
| Well, it looks like I didn't express myself correctly: the binary
| format and the "text"-format are qualitatively different. The text
| format is some kind of encoding of the binary one, where four bytes of
| "text" are used to encode three bytes of the "binary".
| What I am trying to do right now is to write some kind of wrapper
| which reads the four "text"-bytes and converts them to the three
| corresponding binary-bytes; this wrapper should be used by the other
| parts of the program as if it was an ifstream which directly reads the
| binary file.
Hi Moritz,

The way to do what you are looking for is to implement a custom
streambuf class (the polymorphic buffering class which handles
the i/o behind any standard stream). Your implementation
of this file would generate the buffer by translating data
read from another stream.
For some examples, you may check Dietmar Kühl's website:
http://www.informatik.uni-konstanz.de/~kuehl/
Dietmar authored part of Josuttis' (excellent) book
"The C++ Standard Library - A Tutorial and Reference" (in particular
sections related to the i/o stream library), a valuable reference.

But I think that you would be picking the wrong level of
abstraction by working at the level of the streams.
It would probably be better to define a higher-level
interface (abstract base class) to read the contents
of a file, and implement it for both the ascii and binary
file formats.
Then, if needed, you can do the same to write both
formats, and -- if needed -- perform a translation
on-the-fly.


Regards,
Ivan
--
http://ivan.vecerina.com
Brainbench MVP for C++ <> http://www.brainbench.com



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Convert DVD with subtitle stream to DivX with same subtitle stream(selectable) malise Software 1 04-17-2007 09:15 AM
what is the different between byte stream and character stream? dolphin Java 6 03-18-2007 01:58 PM
get stream mode flags from an opened stream Alexander Korsunsky C++ 1 02-17-2007 10:38 AM
How to GET multi-word input from a *file* stream as opposed to a *console* stream? sherifffruitfly@gmail.com C++ 9 04-27-2006 04:14 PM
Doing readline in a thread from a popen4('rsync ...') stream blocks when the stream ends. Rasmusson, Lars Python 1 04-30-2004 08:10 AM



Advertisments