% LogTimeInc should be utilized for time correction. % It allows to correct logged time +-1 hour. % It was primarily designed for D files created by LOCATOR logger. % % input.D - log to be corrected % newfile.D - corrected log % % (c) 03/2009 Jan OK1ZHS clear all close all volba = menu('Time +- 1 hour', 'INCREMENTATION','DECREMENTATION'); % incrementation 'I' or decrementation 'D' switch(volba) case(1) inkrdekr = 'I'; case(2) inkrdekr = 'D'; end offset = 1; % time offset +-1 hour if offset>1 error('Incorrect offset value'); end fid = fopen('input.D'); % file (with incorrect time data) opening logerr = fread(fid,'uint8=>char')'; % data reading and format conversion posice = findstr(logerr,':'); % : finding offmin1 = num2str(offset - 1); offmin2 = num2str(24 - offset); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % INCREMENTATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% switch(inkrdekr) case('I') for i = 1:length(posice) ab(i) = str2double(logerr(posice(i)-2:posice(i)-1)); if ab(i) >= 23 stroff = str2double(['0' offmin1]); % midnight problem solving logerr(posice(i)-2:posice(i)-1) = num2str(stroff); elseif ab(i)>=0 && ab(i)<9 logerr(posice(i)-2:posice(i)-1) = ['0' num2str(ab(i) + offset)]; else logerr(posice(i)-2:posice(i)-1) = num2str(ab(i) + offset); end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DECREMENTATION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% case('D') for i = 1:length(posice) ab(i) = str2double(logerr(posice(i)-2:posice(i)-1)) if ab(i) <= 0 logerr(posice(i)-2:posice(i)-1) = offmin2; % midnight problem solving elseif ab(i)>=1 && ab(i)<=10 logerr(posice(i)-2:posice(i)-1) = ['0' num2str(ab(i) - offset)]; else logerr(posice(i)-2:posice(i)-1) = num2str(ab(i) - offset); end end end logerr fclose(fid); fidnew = fopen('newfile.D','w'); % new file creating and opening fwrite(fidnew,logerr); % data writting into a new file fclose(fidnew);