Top / Programming / C++Builder / タブ区切り(TSV)の読み書き

タブ区切り(TSV)の読み書き

TStringsでCSVの読み書きができることはよく知られています。
DelimiterプロパティとDelimitedTextプロパティを設定することで、 タブ区切り(TSV)も同じように扱うことができます。

タブ区切りのファイルを読み込む

if (OpenDialog1->Execute())
{
  //ファイルを読み込む
  TStringList* file = new TStringList();
  file->LoadFromFile(OpenDialog1->FileName);

  //タブ文字で区切る
  TStringList* tsv = new TStringList();
  tsv->Delimiter = '\t'; //区切り文字の設定

  for (int i = 0; i < file->Count; i++)
  {
    //ファイルから1行ずつ取得し、タブで区切る
    tsv->DelimitedText = file->Strings[i];

    //Memo1に追加する
    for (int j = 0; j < tsv->Count; j++)
    {
      AnsiString s = Format("%d行%d列 %s",
                            ARRAYOFCONST((i+1, j+1, tsv->Strings[j])));
      Memo1->Lines->Add(s);
    }
  }

  delete tsv;
  delete file;
}