How to read all lines in txt file satisfying some condition

Let's assume we have the following format in the file: 1 str1 0 str2 1 str3 ...
that is in each line we have: the first character is number, either 0 or 1, next a whitespace (space or tab) and next a string.
I would like to get all strings that have 1 as first characted in the line. How to do this efficiently (and elegantly, preferably with one-liner). I know I can use fgets and just iterate over the lines.

Réponses (1)

Cedric
Cedric le 22 Oct 2013
Modifié(e) : Cedric le 22 Oct 2013
The following is assuming that you have one pair number/string per line in the file.
match = regexp( fileread('myFile.txt'), '(?<=1 )[^\r\n]+', 'match' ) ;
but one-liner doesn't mean efficient or elegant. You would have to compare this regexp-based approach to approaches based on FGETL, FSCANF, or TEXTSCAN ..

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Question posée :

le 22 Oct 2013

Modifié(e) :

le 22 Oct 2013

Community Treasure Hunt

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

Start Hunting!

Translated by