Read a defined block from text file

조회 수: 1 (최근 30일)
Simon
Simon 2016년 12월 27일
답변: Image Analyst 2016년 12월 27일
Hello,
I like to read text from a text file with following structure:
Random Text
over several
lines
item(
name="Item1",
note="Note1",
coef=(
DATA(1, 2, 3, [11, 12, 21, 22]),
DATA(4, 5, 6, [44, 45, 54, 55])
),
author="Name1"
)
item(
name="Item2",
note="Note2",
coef=(
DATA(1, 2, 3, [11, 12, 21, 22]),
DATA(4, 5, 6, [44, 45, 54, 55])
),
author="Name2"
)
...
The structure is always the same (sometimes author is missing; DATA with 3 numbers and a vector is always stored in item). I thought I can use something like fscanf(fileID,'item(%s)') and split the text again. However, this does not work (returns an empty string).
The file is very big; looping through with fgetl and using if and strcmp works, but is very slow.

답변 (1개)

Image Analyst
Image Analyst 2016년 12월 27일
Maybe try to read the whole file into one array with fread() and then do your parsing on the array. It should be faster than a bunch of disk accesses.

카테고리

Help CenterFile Exchange에서 String Parsing에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by