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

27 views (last 30 days)
憲志郎 堀内
憲志郎 堀内 on 27 Nov 2022
Commented: 憲志郎 堀内 on 28 Nov 2022
---------------------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要素で構成されたテキストファイルがあります。
ヘッダとフッタの個数は未知であるとします。
このテキストファイルからヘッダーとフッタの文字列を取得する良い方法はありますか?

Accepted Answer

Kojiro Saito
Kojiro Saito on 28 Nov 2022
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 Comment
憲志郎 堀内
憲志郎 堀内 on 28 Nov 2022
これは素晴らしい機能ですね。
簡潔にコードが書けそうで大変感激しています。
ご回答ありがとうございました。

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!