function dataDir = openConfigFile(configFile, logFileID) %OPENCONFIGFILE open file config.txt and read dataDir % Config file must follow specific/restrictive rules % The file config.txt should be writen as below. % One line should contain dataDir = %{ % This configuration file contains the definition of variable dataDir for database access. % It is used by functions: listSCase.m, measureSCase.m, plotScase.m % /home/shoulder/data <-- acces data dir from lbovenus or lbomars (default) % /home/shoulder/dataDev <-- acces dataDev dir from lbovenus or lbomars % /Volumes/shoulder/data <-- acces data dir from lbovenus/lbomars mounted on macos % /Volumes/shoulder/dataDev <-- acces dataDev dir from lbovenus mounted on macos % Z:\data <-- acces data dir from lbovenus/lbomars mounted on windows % Z:\dataDev <-- acces dataDev dir from lbovenus mounted on windows dataDir = /Volumes/shoulder/dataDev %} % Author: AT % Date: 2019-01-15 % Modified by: JSM, 2019-02-13 % TODO: Less restrict rules for writting config.txt dataDir = []; if nargin==2 if exist(configFile, 'file') fileID = fopen(configFile,'r'); dataDir = fscanf(fileID, '%s'); % Read config file without spaces fclose(fileID); k = strfind(dataDir, 'dataDir='); % Find definition of dataDir k = k + 8; % Remove 'dataDir=' % Check if dataDir exists dataDir = dataDir(k:end); % Assume that config file ends with dataDir content if ~exist(dataDir, 'dir') fprintf(logFileID, ['Data directory not found, check ' configFile]); % error(['Data directory not found, check ' configFile]); end end end if ~exist(dataDir, 'dir') errordlg(sprintf("%s%s%s%s",... "Please select manually the data directory",... "Error: ConfigFile not provided or not found",... "dataDir not found = ",dataDir)) dataDir = uigetdir(pwd,"Please select the directory 'data or dataDev'"); end end