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?

 Respuesta aceptada

Walter Roberson
Walter Roberson el 22 de Jun. de 2012

0 votos

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 comentarios

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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Community Treasure Hunt

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

Start Hunting!

Translated by