目次
はじめに
C#を使って開発を進めている中で、.thd
ファイルのデータを取り込みたいという場面がありました。
今回は、.thd
ファイルを開いてデータを2次元配列に格納する方法を勉強したので、
実装例とともにまとめておきます。
使用するクラス:StreamReader
.thd
ファイルの中身はテキスト形式(タブ区切り)だったため、StreamReader
で読み込んで、Splitで分解する方法が使えます。
実装コード例
以下が、.thd
ファイルを開いて72行×4列の2次元配列に格納するコードです。
// .thdファイルを開く
StreamReader reader = new StreamReader("HM1709F11L_Aged_001.thd");
string line;
// 2次元配列の定義(72行×4列)
string[,] data = new string[72, 4];
int row = 0;
while ((line = reader.ReadLine()) != null)
{
// タブで区切って配列に変換
string[] items = line.Split('\t');
// ヘッダー行("TRN"で始まる行)はスキップ
if (items[0].StartsWith("TRN")) continue;
// 各列データを格納(不足している列は空文字に)
for (int col = 0; col < 4; col++)
{
if (col < items.Length)
{
data[row, col] = items[col];
}
else
{
data[row, col] = "";
}
}
row++;
}
// ファイルを閉じる
reader.Close();
コードの補足説明
.thd
ファイルはタブ区切り(\t
)で構成されている前提です。StartsWith("TRN")
によって、ヘッダ行をスキップしています。- データが足りない列に対しては空文字を代入することでエラーを回避しています。
string[,] data = new string[72, 4];
の 72行・4列は、ファイルの内容に合わせて決めています。
読み込んだデータの活用例
私の場合、取得したデータをさらに以下のように活用しています:
- CSVファイルに変換して保存
- グラフ描画ソフトに読み込ませて波形やトレンドを確認
- C#内で条件分岐処理や演算処理に使用
.thd
ファイルは機器のログや測定データなどに使われることも多いため、
このようにテキスト読み込み+2次元配列への格納処理を覚えておくと汎用的に使えます。
まとめ
.thd
ファイルのようなタブ区切りのテキストデータを読み取るには、StreamReader
+ Split('\t')
+ 2次元配列の組み合わせが有効です。
要点まとめ:
.thd
ファイルはテキスト形式であればStreamReader
で処理可能- 行・列の構造を確認して配列のサイズを事前に決定する
Split()
と条件処理で柔軟に対応可能
実際に動かしてみると、想像よりもシンプルに処理が書けました。
参考になれば幸いです。