Pulling out a number and a date + time from text file after specific lines

1 view (last 30 days)
Hello all,
I have the following two lines in my text file:
Time of Interval 0: 03/03/18 18:14:02
Interval: 0.02 sec
First off, how can I pull out the number after "Interval:" ?
Secondly, how can I do the same for the date and time after "Time of Interval 0:" ?
The number and the date vary from file to file, but the text preceding them is always the same. I need a solution that works in every situation.
Thanks in advance!

Accepted Answer

Bob Thompson
Bob Thompson on 27 Jun 2019
The most reliable way that I know of to get this is by using fgetl.
file = fopen('mytextfile.txt'); % Access the file
line = fgetl(file); % Read first line
c = 1; % Record the line number for debugging purposes
while ~isnumeric(line) & ~strcmp(line(1:16),'Time of Interval') % Check for desired line, or end of file
line = fgetl(file); % Read next line
c = c + 1; % Advance line count
end
parts = strsplit(line,': ');
number = str2num(parts{1}(18:end));
dt = datetime(parts{2});
There may be some thing syou need to tweak to make it personalized to your inputs, but that should work.
  1 Comment
Heidi Mäkitalo
Heidi Mäkitalo on 2 Jul 2019
Edited: Heidi Mäkitalo on 2 Jul 2019
For some reason Matlab complained about matrix dimensions being exceeded when I tried to use your code, don't know what that was about. This is how I ended up doing it:
Zero interval
function zinterval = FindZeroInterval(file)
opened_file = fopen(file,'rt');
zinterval = '';
while ~strncmpi(zinterval,'Time of Interval 0',18)
zinterval = fgetl(opened_file);
end
zinterval = datetime(zinterval(20:end), 'InputFormat','MM/dd/yy HH:mm:ss');
end
which gives
zinterval =
datetime
03-Mar-2018 18:14:02
and interval
function interval = FindInterval(file)
opened_file = fopen(file,'rt');
interval = '';
while ~strncmpi(interval,'Interval:',8)
interval = fgetl(opened_file);
end
interval = str2double(regexp(interval,'\d+[\.]?\d*','match','once'));
end
which gives
interval =
0.0200
So basically I looked after your answer but changed some things around. Thanks a lot for your help!

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!