MATLAB Answers

0

How to find and remove certain text from a text file

Asked by Pineapple on 8 Aug 2019
Latest activity Edited by Pineapple on 14 Aug 2019
Hi,
I am having trouble removing specific text from a text file. I have a long text file that contains 5 columns and many rows
I am looking for something similar to the functionality of ctrl+F and then remove all of the strings. Essentially I want to isolate the file so it just displays only positive and negative numbers next to Sum-Pnt

  3 Comments

Assuming all rows of the file are the same, I would suggest using regexp.
number = regexp(text,'Sum-Pnt(.\d.\d+)\s+.*','tokens');
The example will only work for one line at a time, so you might want to loop and index it.
Did you delete comments on this thread? That is considered very rude. You're getting free help with your problem, the least you can do is leaving the thread for other people with a similar problem.
And if your flag ("Similar answers available elsewhere on mathworks") is true, why did you need to post the question? Apparently the other threads weren't enough to help you. Maybe this thread will help someone in the future.
@Bob, can you confirm there are deleted comments? In that case, feel free to flag this question so they can be restored.
@Rik I apologize. I made edits but I will restore necessary info and I have unflagged. The text file I was referring to was in the form shown below and the loop is in the next answer.
Sum-Pnt .5464 -.650 +.650 .5464 -+-+-+
Sum-Pnt .3244 -.650 +.650 .3244 -+-+-+
Sum-Pnt-.9723 -.650 +.650 -.9723 -+-+-+

Sign in to comment.

1 Answer

Answer by Bob Nbob
on 8 Aug 2019
 Accepted Answer

As I mentioned, the command would only work for one line at a time. You would need to loop it to get all the lines.
fid = fopen('myfile.txt');
line = fgetl(fid);
c = 1;
while ~isnumeric(line)
number(c) = regexp(text,'Sum-Pnt(.\d.\d+)\s+.*','tokens');
line = fgetl(fid);
c = c + 1;
end

  2 Comments

Does c advance? The purpose of c is to show you which line you should be reading at a given time.
If you are not sure if it is actually reading each line, you can set a debug point somewhere within the loop and compare the string of line with the corresponding line in the file (line c).
The loop worked once "text" was replaced with "line". Thank you for your help

Sign in to comment.