Reading a multi line string into a single string

10 vues (au cours des 30 derniers jours)
Justin
Justin le 19 Mar 2011
I have opened a file with a string consisting of three lines. I want to read these lines from the file and store them in my "template" variable as a three line string. All I can get is the last line of the string to be stored in "template"
while feof(fid) == 0;
line = fgets(fid);
template = strvcat(line)
end
Thanks for the help

Réponse acceptée

Jan
Jan le 19 Mar 2011
template = {};
while feof(fid) == 0;
template{end + 1} = fgets(fid);
end
templateChar = char(template);
More efficient:
C = textscan(fid, '%s', 'delimiter', '\n');
templateChar = char(C{1});
EDITED: textread -> textscan (Thanks, Jiro!)
  1 commentaire
Jiro Doke
Jiro Doke le 20 Mar 2011
@Jan, I think you meant to use "textscan", not "textread". "textread" requires the first input to be the actual file name, not the output of fopen. And "textscan" is preferred anyway.

Connectez-vous pour commenter.

Plus de réponses (1)

Matt Tearle
Matt Tearle le 19 Mar 2011
You can read the whole contents of a file using fileread. Then use regexp to mess with it -- eg, split on "\n"

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by