Convert DAT 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Convert DAT のテキスト⇔テーブル変換機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – テキストと表を変換する

Convert DATは、テキスト形式とテーブル形式を双方向に変換し、区切り文字によるパース・シリアライズを担当する DATです。To Text / To Table の 2 つの変換方向と、Split Cells at / Concatenate with の区切り規則を組み合わせて、CSV / TSV / 独自フォーマットのテキストとテーブル DAT を相互変換します。

主な用途 🎯

  • CSV / TSV テキストTable DAT 形式に分解し、後段でセル単位の参照や検索を可能にする
  • Table DAT のセル群を区切り文字付きの1 つのテキストに連結して File Out DAT へ保存する
  • Web Client DATSerial DAT 等で取り込んだ生テキストレスポンスを行列構造化して解析しやすくする
  • CHOP to DAT でテーブル化した値を To Text モードでシリアライズし、外部プロトコル送信用ペイロードに整形する
  • 複数文字のデリミタを Substitute DAT で 1 文字に置換 → Convert DAT で分割という二段構えで複雑な区切り規則を扱う

データフロー 🔄

入力: テキスト or テーブル DAT

How パラメータで変換方向を決定 (To Text / To Table)

Split Cells at (分割) / Concatenate with (連結) の区切り規則を適用

Remove Blank Lines で空行の扱いを決定

出力: 反対形式の DAT

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Convert Page 📋

How .how 🔁

変換方向を決定するメニューパラメータ

項目 内部名 説明
To Text .text テーブル形式の入力を 1 つのテキスト (連続した文字列) に変換。各セルは Concatenate with で指定した文字列で連結される
To Table .table テキスト形式の入力をテーブル (行列構造) に変換。Split Cells at で指定したデリミタ文字でセルに分割される

Remove Blank Lines .removeblank 🧹

空行を出力テーブルから除外するトグル:

  • Remove Blank Lines トグル: オンにすると、入力テキストに含まれる空行を出力テーブルに含めない (空セル行が生成されない)。CSV ログ等で末尾改行が空行として混入するのを防ぐ用途で使う

Split Cells at .delimiters ✂️

To Table モードでセル境界として扱う文字の集合

Split Cells at .delimiters ✂️
– テキストを行内で分割する際に使用する個別文字のリスト。
– 各文字は独立して適用される。例: $% と指定した場合、$ または % でセル分割が行われ、$% という連続文字列でのみ分割するわけではない。
– 複数文字 (例: ::||) を 1 つのデリミタとして使いたい場合は、前段に Substitute DAT を置いて 1 文字のプレースホルダ (例: |) に置換してから Convert DAT に渡す。

Concatenate with .spacers 🔗

To Text モードでセル間に挿入する区切り文字列

Concatenate with .spacers 🔗
– テーブルからテキストへ変換する際、各セルの間に挿入する文字列。
– CSV を生成したい場合は ,、TSV を生成したい場合は \t (タブ)、独自フォーマットなら ;| 等を指定。
– 行末は出力 DAT 側で改行として自動付与される (本パラメータはセルのみを制御)。


Common Page 🔧

Language .language 📝

DAT が動作するスクリプト言語の決定方法

項目 内部名 説明
Input .input 入力 DAT のスクリプト言語を使用
Node .node この DAT 自身のスクリプト言語を使用

Edit/View Extension .extension 📄

外部エディタに公開するファイル拡張子の選択

項目 内部名 説明
dat .dat 汎用的なファイル拡張子 dat を使用
From Language .language DAT のスクリプト言語に応じた拡張子を自動選択
Custom Extension .custom Custom Extension で指定したカスタム拡張子を使用

Custom Extension .customext 🔤

Edit/View ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

Word Wrap .wordwrap 🔁

ノード表示でのワードラップ (折り返し) の有効化

項目 内部名 説明
Input .input 入力 DAT の Word Wrap 設定を継承
On .on Word Wrap を有効化 (ノード上の長い行を折り返し表示)
Off .off Word Wrap を無効化 (折り返さずそのまま表示)

実践アイデア 💡

Example 1: HTTP レスポンスの CSV をテーブル化 🌐

Web Client DAT → Convert DAT (To Table, delimiters=",") → Table DAT → Select DAT

REST API から返ってきた CSV 形式のレスポンスボディを Convert DAT で行列に分解し、Select DAT で必要な列だけを抽出する基本フロー。Split Cells at に , を指定し、Remove Blank Lines をオンにしておくと末尾改行で発生する空行を除去できる。

  1. Web Client DAT で REST API を叩き、CSV テキストのレスポンスを取得
  2. Convert DAT を後段に配置、howTo Tabledelimiters, を指定
  3. Remove Blank Lines をオンにして末尾改行由来の空行を除去
  4. 後段に Table DAT を置いてセル参照可能な状態にする
  5. Select DAT で必要な列・行だけを抽出して下流に渡す

Example 2: CHOP 値をテーブル化して CSV ログ保存 💾

Serial CHOP → CHOP to DAT → Convert DAT (To Text, spacers=",") → File Out DAT

センサーや解析結果の CHOP 値を CHOP to DAT でテーブル化し、Convert DAT の To Text モードで CSV 形式のテキストにシリアライズして File Out DAT で保存する用途。Concatenate with に , を入れれば CSV、\t を入れれば TSV として書き出せる。

  1. 計測対象の CHOP を CHOP to DAT に渡し、Include Names をオンにしてチャンネル名カラムを付加
  2. Convert DAT を続け、howTo Textspacers, を指定
  3. 後段の File Out DAT を配置し、出力ファイル名と拡張子 (例: .csv) を設定
  4. Append モードを必要に応じて選択し、長時間ログとして保存

Example 3: 複数文字デリミタの 2 段階パース 🧩

Text DAT → Substitute DAT ("::" → "|") → Convert DAT (To Table, delimiters="|") → Table DAT

Convert DAT の Split Cells at は個別文字を独立して扱うため、:: のような複数文字シーケンスを 1 つのデリミタとして扱えない。前段に Substitute DAT を置き、:: を未使用の単一文字 (例: |) に置換してから Convert DAT で分割するパターン。

  1. ソースとなるテキストを Text DAT に保持
  2. Substitute DAT を後段に配置し、複数文字デリミタ (例: ::) を未使用の 1 文字 (例: |) に置換
  3. Convert DAT を続け、howTo Tabledelimiters に置換後の | を指定
  4. Table DAT でセル単位の参照ができることを確認

Example 4: Serial 受信文字列のテーブル化 🔌

Serial DAT → Convert DAT (To Table, delimiters=",;") → Select DAT

マイコンやセンサーから Serial 経由で送られてくる固定フォーマット文字列 (例: id,value;state) を、Convert DAT で行列に分解してフィールドごとに参照できるようにする用途。Split Cells at に複数の単一文字 (,;) を並べて指定すれば、両方の区切り文字で分割される。

  1. Serial DAT で受信文字列を取得 (1 行 = 1 メッセージ前提)
  2. Convert DAT を後段に配置、howTo Tabledelimiters,; を指定 (両文字とも独立に区切り扱い)
  3. Remove Blank Lines をオンにして接続切断時の空行を除外
  4. Select DAT で必要なフィールド列のみ取り出し、後段の DAT to CHOP 等に渡す

関連オペレータ 🔗

類似機能OP 🔍

  • Substitute DAT — 文字列レベルの置換 DAT。Convert DAT 前段で複数文字デリミタを 1 文字化する用途で頻繁に併用
  • Reorder DAT — テーブルの列順を入れ替える DAT。Convert で構造化した後の整形に用いる

組み合わせ推奨OP 🔄

  • Table DAT — To Table 後の代表的な格納先、To Text 前のソース
  • Substitute DAT — 複数文字デリミタを 1 文字化する前段処理
  • File In DAT — ディスク上の CSV / TSV ファイルを読込み、Convert DAT に流す
  • File Out DAT — Convert DAT で生成したテキストをディスクに書き出してログ保存
  • Web Client DAT — HTTP レスポンスの CSV / TSV ボディを Convert DAT でテーブル化
  • CHOP to DAT — CHOP 値をテーブル化した後 Convert DAT で CSV / TSV テキスト化
  • Select DAT — Convert DAT 後段で必要な行・列だけを抽出

前処理・後処理DAT 🎯


Info CHOP情報 📊

Convert DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols で出力テーブルのサイズを、total_cooks / cook_time / cpu_time で実行統計を参照でき、変換負荷の監視や、入力テキスト変化時の再評価タイミング判定に利用できます。

DAT 固有情報 📋

  • num_rows: DAT の行数
  • num_cols: DAT の列数
  • type: DAT の型 (table / text)
  • is_table: テーブル形式の場合 1、テキスト形式の場合 0

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: ::|| など複数文字のデリミタで分割できない
✅ Solution:

  • Convert DAT の Split Cells at個別文字を独立して適用するため、複数文字シーケンスをそのまま指定しても期待通りに動かない
  • 前段に Substitute DAT を置き、複数文字デリミタを入力中に出現しない 1 文字 (例: |) に置換してから Convert DAT に渡す
  • 置換後の 1 文字を delimiters に指定して分割を実行

❌ Problem: To Table 後にテーブル末尾へ空行が混入する
✅ Solution:

  • Remove Blank Lines をオンにして、空行を出力テーブルに含めないように切替
  • 入力テキストの行末改行が冗長になっていないか前段で確認 (例: CRLF と LF が混在していないか)
  • Substitute DAT 等で末尾の余計な区切り文字を事前に除去

❌ Problem: To Text 後にセル間が想定外の文字で連結されている
✅ Solution:

  • Concatenate with パラメータに目的の区切り文字 (例: CSV なら ,、TSV なら \t) を明示的に指定する
  • デフォルトでは空白 1 文字になるため、CSV / TSV を生成したい場合は必ず変更が必要
  • 行末は出力 DAT が自動付与するため、spacers 側で改行を入れないこと (二重改行になる)

❌ Problem: 数値や文字列が想定したセル位置に配置されない
✅ Solution:

  • 入力テキスト内に Split Cells at で指定した文字がフィールド値中に混入していないか確認 (例: 値そのものに , が入っているとセル数がずれる)
  • Substitute DAT で値中の区切り文字をエスケープ文字 (例: \,) や別の文字に事前置換
  • クォート文字を含む CSV を扱う場合は、Convert DAT ではなく Python スクリプトで csv モジュールを使って parse する方が安全

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました