csv file reading limits question
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, I'm trying to import the data from multiple csv files. My csv files have different numbers of heading lines. for example:
File one:
DATE = 20020414
TIME = 0723
Data 1, Data 2,
1,2
3,4...
File two:
DATE = 20020414
Data 1, Data 2,
1,2
3,4
4,5...
I have a code that works for a single csv file, using csvread/dlmread where I manually assign the row and column limits, but I would like to write a general code that can search for the number of headers in a specific file and adapt limits for file reading accordingly. Is there an easy way to do this? Should I be using a different function to read my data? (textscan, etc?)
2 commentaires
Jan
le 26 Jan 2011
How do you distinct header lines from data lines? Do header lines never start with a number character, but data lines always do?
Réponses (2)
Walter Roberson
le 26 Jan 2011
Provided that you have the same number of columns in each of the files:
fid = fopen(CurrentFileName,'rt');
failed = 0;
if fid < 0
disp(sprintf('Failed to open file: %s', CurrentFileName))
failed = 2;
else
while true
pos_at_line = fseek(fid);
this_line = fgetl(fid);
if ~ischar(this_line)
disp(sprintf('File has no dataset: %s', CurrentFileName))
failed = 1;
break
elseif any(this_line == '=')
continue
else
fseek(fid,pos_at_line,'bof');
break
end
end
if failed == 0
inputdata = textscan(fid, ...... ); %use an appropriate format
end
if failed <= 1
fclose(fid);
end
0 commentaires
Voir également
Catégories
En savoir plus sur Text Files dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!