Borrar filtros
Borrar filtros

How to read all lines in txt file satisfying some condition

4 visualizaciones (últimos 30 días)
Mateusz
Mateusz el 22 de Oct. de 2013
Editada: Cedric el 22 de Oct. de 2013
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.

Respuestas (1)

Cedric
Cedric el 22 de Oct. de 2013
Editada: Cedric el 22 de Oct. de 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 ..

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by