I am looking to speed up the reading of a data file which has been converted from binary (it is my understanding that “binary” can mean a lot of different things – I do not know what type of binary file I have, just that it’s a binary file) to plaintext. I looked into reading files quickly awhile ago, and was informed that reading/parsing a binary file is faster than text. So, I would like to parse/read the binary file (that was converted to plaintext) in an effort to speed up the program.
I’m using Matlab for this project (I have a Matlab “program” that needs the data in the file). I guess I need some information on the different “types” of binary, but I really want information on how to read/parse said binary file (I know what I’m looking for in plaintext, so I imagine I’ll need to convert that to binary, search the file, then pull the result out into plaintext). The file is a logfile, if that helps in any way.
Thanks.
There are several issues in what you are asking — however, you need to know the format of the file you are reading. If you can say “At position xx, I can expect to find data yy”, that’s what you need to know. In you question/comments you talk about searching for strings. You can also do it (much like a text file) “when I find xxxx in the file, give me the following data up to nth character, or up to the next yyyy”.
You want to look at the documentation for
fread. In the documentation there are snippets of code that will get you started, but as I (and others) said you need to know the format of your binary files. You can use a hex editor to ascertain some information if you are desperate, but what should be quicker is the documentation for the program that outputs these files.Regarding different “binary files”, well, there is least significant byte first or LSB last. You really don’t need to know about that for this work. There are also other platform-dependent issues which I am almost certain you don’t need to know about (unless you are moving the binary files from Mac to PC to unix machines). If you read to almost the bottom of the
freaddocumentation, there is a section entitled “Reading Files Created on Other Systems” which talks about the issues and how to deal with them.Another comment that I have to make, you say that “reading/parsing a binary file is faster than text”. This is not true (or even if it is, odds are you won’t notice the performance gain). In terms of development time, however, reading/parsing a textfile will save you huge amounts of time.