Reading a .dat file with textread

How do you read .dat file that contains 5 .jpg images in it using textread?
Also, how do you output the filenames?

 Risposta accettata

Walter Roberson
Walter Roberson il 22 Giu 2012

0 voti

jpg images are binary images, but textread() is for reading text files.
Does the .dat file perhaps contain the names of the images rather than the images themselves?
There is no standard format for .dat files: it is a suffix used by any program to hold any data. You need to know the internal structure of that particular .dat file in order to work with it. It might be pure text (most .dat files are not).

9 Commenti

Jonathan
Jonathan il 22 Giu 2012
Yes, it is 5 strings of the names of the images. Not the images themselves.
Jonathan
Jonathan il 22 Giu 2012
Would using fscanf be better? I want it to print out the names of the images.
Jonathan
Jonathan il 22 Giu 2012
What about fgets?
Also, I would like to write the "printout" of the names of the images to a .txt file. How do I do that?
A lot depends on the file format.
You could probably use fileread(), together with regexp() with the 'split' option.
Jonathan
Jonathan il 23 Giu 2012
Thanks so much for telling me about fileread! It's a life saver. Anyways, I now have my 5 strings stored in a variable called filename. How to a write the contents of filename to a new txt file?
Jonathan
Jonathan il 23 Giu 2012
I mean not write to a txt file, I mean create a new .txt file with filename in it
Jonathan
Jonathan il 23 Giu 2012
Ok, so I figured out how to make a txt file by using fprintf, but it doesn't seperate the strings that are in filename with line breaks. How do I make it do that?
I'm not sure what you mean, but anyhow...
fid = fopen('TheFileName.txt','wt');
fprintf(fid, '%s\n', filename{:});
fclose(fid)
I am assuming here that filename is a cell array of strings. If it is a plain string then you may have to break it apart if you want one filename per line. Or perhaps just
fid = fopen('TheFileName.txt','wt');
fprintf(fid, '%s\n', filename);
fclose(fid)
Jonathan
Jonathan il 5 Lug 2012
Thanks a lot! I just needed to add the t next to the w in 'wt' in fid = fopen('TheFileName.txt','wt');. It works perfectly now.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by