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

11 ビュー (過去 30 日間)
憲志郎 堀内
憲志郎 堀内 2022 年 11 月 27 日
コメント済み: 憲志郎 堀内 2022 年 11 月 28 日
---------------------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 日
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 件)

カテゴリ

Help Center および File ExchangeText Data Preparation についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!