テキストファイルから​最初の数行および最後​の数行を読み取りたい

---------------------text.txt---------------------
header1
header2
DATASTART
DATA DATA DATA DATA DATA DATA
DATA DATA DATADATA DATA DATA
DATA DATA DATADATA DATA DATA
DATA DATA DATADATA DATA DATA
DATAEND
footer1
footer2
footer3
---------------------------------------------------
上記のようにヘッダー・データ・フッタの3要素で構成されたテキストファイルがあります。
ヘッダとフッタの個数は未知であるとします。
このテキストファイルからヘッダーとフッタの文字列を取得する良い方法はありますか?

 채택된 답변

Kojiro Saito
Kojiro Saito 2022년 11월 28일

0 개 추천

fopenfscanfを使うやり方でもできそうですが、R2020bで登場したreadlinesを使ったほうが楽かなと思います。
サンプルコードを記載します。
% テキストファイルをstring配列として読み込み
lines = readlines('text.txt');
% DATASTARTを含む行を抽出
datastartLine = find(contains(lines, "DATASTART"));
% DATASTARTの1行前までをヘッダーとする
headerLine = lines(1:datastartLine-1)
headerLine = 2×1 string array
"header1" "header2"
% DATAENDを含む行を抽出
dataendLine = find(contains(lines, "DATAEND"));
% DATAENDの1行後からをフッターとする
footerLine = lines(dataendLine+1:end)
footerLine = 3×1 string array
"footer1" "footer2" "footer3"

댓글 수: 1

憲志郎 堀内
憲志郎 堀内 2022년 11월 28일
これは素晴らしい機能ですね。
簡潔にコードが書けそうで大変感激しています。
ご回答ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Text Data Preparation에 대해 자세히 알아보기

제품

릴리스

R2022a

질문:

2022년 11월 27일

댓글:

2022년 11월 28일

Community Treasure Hunt

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

Start Hunting!