Filemaker Pro 13で追加された関数 ~その1~ (「Base64Decode」「Base64Encode」)
2014年04月23日 10:00 AM
ファイルメーカーのTips
「ファイルメーカー13 (FileMaker 13)の新関数」 シリーズ第1弾 です!
このシリーズでは、以下の関数の紹介を予定しております。
Filemaker 13で追加された関数一覧
・Base64Decode
・Base64Encode
・Get ( 接続属性 )
・GetContainerAttribute
・Get ( 現在の時刻 UTCミリ秒 )
・Get ( デバイス )
・Get ( 暗号化状態 )
・Get ( ネットワークタイプ )
・Get ( スクリプトアニメーション状態 )
・Get ( トリガジェスチャ状態 )
・Get ( ウィンドウ方向 )
今回は、「Base64Decode」、「Base64Encode」を紹介します。
【Base64Decode】
Base64 フォーマットでエンコードされたテキストからオブジェクト内容を返します。
【Base64Encode】
指定されたオブジェクトフィールドの内容をテキストとして返します。
Base64とは?
データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。
「Base64」(2014年1月23日 (木) 08:24 UTCの版)『ウィキペディア日本語版』。
http://ja.wikipedia.org/wiki/Base64
つまり、
「Base64Decode」では、Base64というフォーマットで作られた文字列をオブジェクト(写真やファイル)に変換する
「Base64Encode」では、オブジェクトをBase64フォーマットの文字列に変換する
という関数になります。
■実際に使ってみます
・Base64Encode
現在[オブジェクト]フィールドに画像が挿入されています。
[オブジェクト]フィールドの下に配置されているボタンには、以下を行うスクリプトが設定されています。
① Base64Encode関数を利用して[オブジェクト]フィールドを文字列に変換
② ①で作成された文字列を[テキスト]フィールドに挿入する
ボタンを押すと[オブジェクト]フィールドに挿入された画像が変換され、とても長い文字列が[テキスト]フィールドに入りました。
・Base64Decode
上記のBase64Encodeで出てきたテキストを[テキスト]フィールドにコピーしてあります。
[テキスト]フィールドの下のボタンには、以下を行うスクリプトが設定されています。
① Base64Decodeを利用して[テキスト]フィールドの文字列をオブジェクトに変換
② ①で作成されたオブジェクトを[オブジェクト]フィールドに挿入する
押してみると、[テキスト]フィールドの文字列が変換されて、先ほどと同じ画像が[オブジェクト]フィールドに挿入されました。
■Base64Decodeの注意点
Base64Encodeでは、引数に文字列にしたいオブジェクトが保存されているフィールドを指定するだけでよいのですが…
例:Base64Encode( 対象のオブジェクト )
Base64Decodeだと、変換後のファイル名(拡張子まで含めた)を指定する必要があります。
例:Base64Decode( 対象のテキスト ; 拡張子まで含むファイル名 )
※このファイル名は、Base64Encodeの際に挿入時のファイル名と異なっても問題ありません。
例)挿入したファイル名:”20140411Mydog.jpg”
変換後のファイル名:”dog.jpg”
変換後のファイルをエクスポートした場合”dog.jpg”というファイル名になります。
このようにBase64Decodeにて、括弧内を対象のテキストフィールドだけにしておくと…
「名称未設定.dat」ファイルとなってしまいます。
Base64Decodeを使用するときには、忘れずに拡張子まで含めたファイル名を指定しましょう。
■まとめ
・「Base64Decode」、「Base64Encode」を利用することにより、オブジェクトをテキストに、そしてテキストをオブジェクトに変換できるようになりました。
・「Base64Decode」を利用するときには、拡張子まで含めたファイル名を指定しましょう。