目次
はじめに
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()と条件処理で柔軟に対応可能
実際に動かしてみると、想像よりもシンプルに処理が書けました。
参考になれば幸いです。
