Filter löschen
Filter löschen

read a number after a specific string in a txt file

6 Ansichten (letzte 30 Tage)
Ferial Assmani
Ferial Assmani am 29 Mär. 2013
Kommentiert: Oscar Espinosa am 30 Mai 2020
i want to read the number after a specific string in a txt file, for example:
First parameter is 1
Second Parameter is 5
I want like result P1 = 1 and P2 = 5, I note that there is a variable spaces between the wanted strings and the wanted data. Tanks

Akzeptierte Antwort

Cedric
Cedric am 29 Mär. 2013
Bearbeitet: Cedric am 29 Mär. 2013
As it's a bit more elaborate than your previous question, it might be time to go for a regexp solution (even though you can always use STRFIND, SSCANF, etc).
Are these parameters listed in an increasing order? I.e. could we detect "parameter is" and get what follows iteratively, in order to build an array P whose 1st element is what you call P1, second element is what you call P2, etc?
I'm asking, because you could have a solution like
>> buffer = fileread('theFile.txt') ;
>> P = str2double(regexpi(buffer, '(?<=parameter is\s*)\d*', 'match'))
P =
1 5
If parameters are not ordered, we have to match them more specifically though.
  7 Kommentare
Cedric
Cedric am 31 Mär. 2013
You're most welcome!
Oscar Espinosa
Oscar Espinosa am 30 Mai 2020
Hi, I tried this solution, but doesn't fit in my case. I have a line, which need to be read in each iteration due to the change in its value. The lines is the next:
*GET G FROM SSUM ITEM=ITEM G VALUE= 0.238690015E+13
What I have tried its without success:
str2double(regexpi(buffer, '(?<=VALUE= \d*', 'match'));
and
sscanf(buffer, '%*s %15.9e', [1, inf]);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by