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;
}