Question

I have a file in binary format having a large amount of data.

If I have knowledge of the file structure, how do I read information from the binary file, and populate a record of these structures?

The data is complex.

I'd like to do it with Qt, but I would do it in C++ as well, if required.

Thanks for your help..

Was it helpful?

Solution 3

http://courses.cs.vt.edu/~cs2604/fall00/binio.html would be help for you. I've learned from there. (hint always cast your data as(char*) ).

OTHER TIPS

If the binary file is really large then it’s better to load it as (char*) array if enough RAM is available via low level read function http://crasseux.com/books/ctutorial/Reading-files-at-a-low-level.html and then you can parse it.

But this will only help you to load large files, not to parse complex structures.

Not sure, but you could also take a look at yacc.

This doesn't sound like yacc will be a solution, he isn't trying to parse the file, he wants to read binary formatted data to a data structure.

You can read the data in and then map it to a struct that matches the format. If the data is complex you may need to lay structs over it in a variety of ways depending on how the data layout works. So basically read the file into a char* or and then select the element where your struct starts, cast that element to a pointer to your stuct and then access the element. Without more detail it's impossible to be more specific than this.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top