read a file upto certain character
Show older comments
Hello I have a file which contains 1342400 bits means 10101010010......like this way,
I need to read this file upto 1341440 bits ,how to do so?
after this I need to take chunk of 8bit from this bit sequence and have to convert it in decimal value,separated by ,
like 11111111111111111111111.... i need to convert it in 255,255,255 this way
any help for my two queries
Accepted Answer
More Answers (2)
Image Analyst
on 15 Jan 2013
0 votes
fread() can do that for a binary file. Is it a binary file or a text file?
2 Comments
joy
on 15 Jan 2013
Image Analyst
on 15 Jan 2013
Use fgetl() to get a line of text. Then use bin2dec() to turn a chunk of that text into a number.
José-Luis
on 15 Jan 2013
The documentation has examples that illustrate how fread() works. Here is a (rather pointless) example of how to read a file bit by bit and then transforming those bits into uint8, which is what you are trying to achieve, if I understood your question right. I insist that it is much better to read directly as uint8
fid = fopen('your_file.txt','r');
numBits = 800; %multiple of 8, in this case it means the first 100 characters
your_vals = reshape(fread(fid,800,'ubit1'),[],8);
fclose(fid);
your_ascii_number = sum(bsxfun(@times,your_vals,2.^(7:-1:0)),2);
5 Comments
joy
on 15 Jan 2013
joy
on 16 Jan 2013
José-Luis
on 16 Jan 2013
So the ones were characters, not bits.
Image Analyst
on 16 Jan 2013
That's what I thought, hence my suggestion to use bin2dec().
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!