function [ SelectedFiles ] = MMa_SelectFiles(OutputDir) %UNTITLED2 Summary of this function goes here % Detailed explanation goes here % FileNameDataBaseInfo clc; msg0 = 'Give a folder to read files from. Remember to add final \\ ! '; Folder = input(msg0, 's'); Filenames = MMa_FetchFileNames(Folder); %save('C:\Users\meandvi\Desktop\HDF5\Results\finalfilenames.mat', 'Filenames'); SelectedFiles = Filenames; msg1 = ['The search found ' num2str(length(Filenames))... ' MCD (.h5) and Axion files. Do you want to select a subset of files? (y/n): ']; msg2 = ['Add criteria to your selection:' char(10)... '(0) Stop adding criteria' char(10)... '(1) Date selection' char(10)... '(2) Experimenter selection' char(10)... '(3) N number selection' char(10)... '(4) Cell line selection' char(10)... '(5) Text in the file name or path' char(10)... '(6) List selected files' char(10)... '(7) List all original files' char(10)... '(8) Save all the found files' char(10)]; msg21 = 'Give the date selection in the format of yymmdd-yymmdd : '; msg22 = 'Give a 3 character experimenter ID : '; msg23 = 'Give a range of N numbers in the format of number-number : '; msg24 = 'Give a cell line identificator : '; msg25 = 'Enter text to be searched : '; msg26 = 'THE FILES IN THE DATABASE HAVE BEEN MOVED. DATABASE MUST BE UPDATED!'; ansv1 = input(msg1,'s'); clc; if strcmp(ansv1,'y') ansv2 = 1; parameters.dates = cell.empty(); parameters.experimenters = cell.empty(); parameters.nnumbers = cell.empty(); parameters.celllines = cell.empty(); parameters.texts = cell.empty(); while ~(ansv2 == '0') ansv2 = input(msg2,'s'); clc; if ansv2 == '1' % yymmdd-yymmdd 140516-140812 ansv21 = input(msg21,'s'); parameters.dates{length(parameters.dates)+1} = strsplit(ansv21,'-'); elseif ansv2 == '2' ansv22 = input(msg22,'s'); parameters.experimenters{length(parameters.experimenters)+1} = ansv22; elseif ansv2 == '3' % number-number ansv23 = input(msg23,'s'); parameters.nnumbers{length(parameters.nnumbers)+1} = strsplit(ansv23,'-'); elseif ansv2 == '4' ansv24 = input(msg24,'s'); parameters.celllines{length(parameters.celllines)+1} = ansv24; elseif ansv2 == '5' ansv25 = input(msg25,'s'); parameters.texts{length(parameters.texts)+1} = ansv25; elseif ansv2 == '6' disp(SelectedFiles); elseif ansv2 == '7' disp(Filenames); elseif ansv2 == '8' filedates = cellfun(@dir, SelectedFiles); filedates = {filedates(:).date}'; nnumbrs = cellfun(@findMEAID, SelectedFiles, 'UniformOutput', false); xlswrite(strcat(OutputDir, '_SelectedFiles_', MMa_timestamp(), '.xls'), [nnumbrs, filedates, SelectedFiles]); end if str2num(ansv2) < 7 SelectedFiles = MMa_StrSelection(parameters, Filenames); disp([char(10) 'The analysis now includes ' num2str(length(SelectedFiles)) ' files.' char(10)]); end end % end parametrien kysely loppuu t?h?n save(strcat(OutputDir,'file_selection_parameters_',MMa_timestamp(),'.mat'), 'parameters'); end try % datenums are only used if the filename is missing date % information fndates = cellfun(@findMEAdate, SelectedFiles, 'UniformOutput', false); fileinfos = cellfun(@dir, SelectedFiles); %, 'UniformOutput', false); % if filename is missing date information that file % modification date is used as date for r = 1:length(fndates) if fndates{r} == 0 fndates{r} = str2num(datestr(fileinfos(r).date,'yymmdd')); end end fileinfos = {fileinfos(:).datenum}'; SelectedFiles = [SelectedFiles fndates fileinfos]; catch err disp(msg26); SelectedFiles = []; end end % isdir