Hi,
The typical file format is as follows:
channelCfg 15 3 0
adcCfg 2 1
adcbufCfg -1 0 0 1 0
The text file is read. The keywords are adcCfg and adcbufCfg. Searching for the keywords only integers in that line have to be stored in a vector. I tried to get something to work with regexp and strfind but got no satisfying results.
Regards

 Akzeptierte Antwort

Guillaume
Guillaume am 7 Aug. 2018

0 Stimmen

but got no satisfying results
And what is a statisfying result?
Is this what you're after?
filecontent = fileread('c:\somewhere\somefile.txt');
adclines = regexp(filecontent, '(?<=adc(buf)?Cfg).*', 'match', 'dotexceptnewline');
adcnumbers = cellfun(@str2double, regexp(adclines, '[+-]?\d+', 'match'), 'UniformOutput', false);
celldisp(adcnumbers)

3 Kommentare

Robert Worm
Robert Worm am 7 Aug. 2018
Bearbeitet: Robert Worm am 7 Aug. 2018
Thanks for your help. This does the job.
Alternatively multiple expressions are added with or: '|'.
Regexp at first appears to be very convenient but also not intuitive.
Stephen23
Stephen23 am 7 Aug. 2018
Bearbeitet: Stephen23 am 7 Aug. 2018
"Regexp at first appears to be very convenient but also not intuitive."
You will get used to them. It takes a lot of reading the documentation to use regular expressions effectively. This is your source of information:
Guillaume
Guillaume am 7 Aug. 2018
not intuitive
Like any language, you have to learn it. It is very self-consistent and once you know it very intuitive.
Alternatively multiple expressions are added with or: '|'.
I'm not sure why you are mentioning this.
Is your question answered then?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Characters and Strings finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by