Import CSV file according to timestamp

1 次查看(过去 30 天)
Hello.
I have a bunch of CSV (comma separated value) files that are named randomly based on the MAC ID of the logger that created the file.
What I want to do is write a function that automatically imports the CSV file from the month and year that is defined by the input parameters.
For example:
function [importedvar] = csvMYimport(month, year)
%find out what month and year is wanted and choose the file to import accordingly
The CSV files are all in one folder. The first ten characters of the second line of each CSV file contains a timestamp, for example:
2013-08-01
So the only way I can automate the import is by scanning the first 7 characters of the second row of each CSV file and then choose that file's filename and add it to the path, i.e. "D:\\CSVfiles\CSV932147321.csv"
I have already coded a fitted import process and the error checking to make sure the month and year parameters are put in correctly. [Months: 1, 2, 3, 4,...,12 - years: 2013, 2014, ..., etc.]
I just need to find a way to use those inputs (for example Month = 8; Year = 2013) and get Matlab to scan the files, pick out the file name and add it to the string: 'D:\\CSVfiles\'
Is this possible with Matlab?
I would be really greatful for any suggestions!
Marc (P.S. I will be working on another project at the same time, so please don't feel offended if it takes a day or so for me to check the answers)

采纳的回答

Cedric
Cedric 2013-10-24
编辑:Cedric 2013-10-24
You could do something like the following (not tested):
function selection = getFilesYearMonth( folder, year, month )
files = dir( fullfile( folder, '*.csv' )) ;
selection = {} ;
for k = 1 : numel( files )
fid = fopen( fullfile(folder, files(k).name), 'r' ) ;
fgetl( fid ) ; % Skip first line.
yearMonth = fscanf( fid, '%f-%f', 2 ) ;
fclose( fid ) ;
if yearMonth(1) == year && yearMonth(2) == month
selection = [selection, files(k).name] ;
end
end
end
  2 个评论
Marc Jakobi
Marc Jakobi 2013-10-24
Thank you! This seems to work well and shouldn't be too hard to change if the csv files change.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by