Code to identify data folders
From Mslice
Jump to navigationJump to search
<syntaxhighlight lang="MATLAB M">
if isfield(msl_conf,field) % this is a path which may be specified either in the file % itself, or in configuration; Arbitration would occur.
if (strcmp(field,'MspDir')||strcmp(field,'MspFile')) % if it is MspDir or MspFile, then it has been set already if strcmp(field,'MspFile') && ~strcmp(value,file_name) % but the msp file name in defined in the file is different from the filename itself % need to fix it; nmodific =nmodific+1; modificators{nmodific}='MspFile'; nmodific =nmodific+1; modificators{nmodific}=file_name; end
elseif strncmp(value,'$.',2) % this is probably relative path to a sample data and the field is read only full_dir=fullfile(get(mslice_config,'MspDir'),value(4:length(value))); set(mslice_config,field,full_dir); is_read_only=true;
elseif strncmp(value,'.',1) % this is probably relative path to a sample data below full_dir=fullfile(get(mslice_config,'MspDir'),value(3:length(value))); if exist(full_dir,'dir') set(mslice_config,field,full_dir); else full_dir=get(mslice_config,field); msp_dir =get(mslice_config,'MspDir'); short_dir=strrep(full_dir,msp_dir,'./'); nmodific =nmodific+1; modificators{nmodific}=field; nmodific =nmodific+1; modificators{nmodific}=short_dir; end
else if exist(value,'dir') % the path is specified by sting in the file; set(mslice_config,field,value); else % the path should be y specified by config variables path=get(mslice_config,field); msp_dir =get(mslice_config,'MspDir'); path =strrep(path,msp_dir,'./'); nmodific =nmodific+1; modificators{nmodific}=field; nmodific =nmodific+1; modificators{nmodific}=path; end end
% replace sting in old msp file with its new equivalents
if ~isempty(modificators)&&(~is_read_only) for i=1:floor(nmodific/2) perl('set_key_value.pl',fullname,modificators{2*i-1},modificators{2*i}); end end
</syntaxhighlight>