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?

 Réponse acceptée

Walter Roberson
Walter Roberson le 22 Juin 2012

0 votes

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 commentaires

Jonathan
Jonathan le 22 Juin 2012
Yes, it is 5 strings of the names of the images. Not the images themselves.
Jonathan
Jonathan le 22 Juin 2012
Would using fscanf be better? I want it to print out the names of the images.
Jonathan
Jonathan le 22 Juin 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?
Walter Roberson
Walter Roberson le 22 Juin 2012
A lot depends on the file format.
You could probably use fileread(), together with regexp() with the 'split' option.
Jonathan
Jonathan le 23 Juin 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 le 23 Juin 2012
I mean not write to a txt file, I mean create a new .txt file with filename in it
Jonathan
Jonathan le 23 Juin 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?
Walter Roberson
Walter Roberson le 23 Juin 2012
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 le 5 Juil 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by