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

20 vues (au cours des 30 derniers jours)
憲志郎 堀内
憲志郎 堀内 le 27 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要素で構成されたテキストファイルがあります。
ヘッダとフッタの個数は未知であるとします。
このテキストファイルからヘッダーとフッタの文字列を取得する良い方法はありますか?

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!