WOLFRAM言語チュートリアル

エキスポートコンバータの開発

Wolfram言語では,ファイル形式のコンバータを実装し,Wolfram言語のImportExportフレームワークと統合させることのできる機能が提供されている.形式コンバータを実装し,Exportを使ってカスタマイズされた形式からデータをエキスポートすることができる.

Exportと低レベルのコンバータ関数との間のインターフェースは,コンテキストにある)で指定される.基本的には,Wolfram言語式をあるファイル形式にエキスポートするときのさまざまな関数の呼出し方をImportExportフレームワークに伝える.

Wolfram言語にはさまざまなコンバータのソースコードも含まれている.これらはフォルダ$InstallationDirectory/SystemFiles/Formats/format にある.ここで formatBDFDIFMTPSMILESSurferGridTGFTLEのいずれかを指す.登録コードはファイルImport.mおよび/またはExport.mにあり,コンバータのソースはConverter.mというファイルにある.

形式登録

まずExport形式を登録しなければならない.Import形式の登録と異なり,は1つの関数しか受け入れない.

ImportExport`RegisterExport["format",function]ファイルを形式 format にエキスポートしたとき,Exportフレームワークにより function が使われるよう登録する

コンバータ関数を書く

この例では,各コードがシングルスペースで区切られた,各文字のASCIIコードによるASCII文字列を符号化するファイル形式を想定する.この形式のコンバータ関数はを使ってImportExportフレームワークに加えることができる.

In[9]:=
Click for copyable input

Export[file.ext,"str","MyExportFormat"]を使うと,フレームワークは出力ファイルの名前とデータ str をエキスポータに渡すので,エキスポータ関数の例は次のように書くことができる.

In[22]:=
Click for copyable input

これでは他のファイル形式と同様にExportで使うことができるようになった.

コンバータ関数の要素とオプション

常に要素をインポートするImportとは異なり,Exportは式(上記の例題を参照)や規則のリストを という形式で直接エキスポートすることができる.

要素はオプションとして指定することができる,つまり,要素は他のオプションすべてとともに常にコンバータ関数に渡されるのである.ここで,要素およびオプションの取り扱いを説明するために,自明のコンバータを示す.

In[11]:=
Click for copyable input
In[12]:=
Click for copyable input
式を使って直接エキスポートする.
要素を介してエキスポートする.
オプションを付けて要素を介してエキスポートする.
要素をオプションとして登録し,要素を介してエキスポートする.

と指定すると,要素はオプションとして自動的にエキスポータに渡される.