Need some help with re-formating a text.file using MATLAB?

1 view (last 30 days)
Austin on 24 Jun 2022
Commented: Walter Roberson on 24 Jun 2022
Hi all,
I am quiet new in MATLAB, and I wish to have you guys help with re-formating a text file. A portion of the input text.file is below:
It mainly contains two keywords: DATE (year month day) and CHANGE (following be a variable like '10' and a number like 1.0). What I want is to have it converted is the text.file below:
The changes includes: 1. Reformat the Date to (day, month, year) and month to be words. 2. have the data after each CHANGE into a single row and add "good" if the variable is '10' while "bad" if the variable is '101'.
I have a crazy long text. file with these two keywords, it would be great if I could have MATLAB to do it. Any help or hint would be highly appreciated!

Answers (1)

Jan on 24 Jun 2022
Actually all you want to do is to replace the string
a = sprintf('''10''\n')
% by
b = sprintf('''10'' good ')
c = sprintf('''101''\n')
% by
d = sprintf('''101'' bad ')
The conversion of the first line is faster performed manually, if it is one file only, which is just "crazy" long.
If this matchs your problem:
s = fileread('YourFile.txt');
s = strrep(s, sprintf('''10''\n'), sprintf('''10'' good '));
s = strrep(s, sprintf('''101''\n'), sprintf('''101'' bad '));
[fid, msg] = fopen('NewFile.txt', 'w');
assert(fid > 0, msg);
fwrite(fid, s, 'char');
Walter Roberson
Walter Roberson on 24 Jun 2022
You can do text transformation of year and month number to month name abbreviation followed by year.
Or you can
char(datetime(YEARNUMBER, MONTHNUMBER, 1, 'Format', MMM yyyy))

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!