ファイルフォーマットは、読み込みファイルや書き出しファイル内での、フィールドやレコードの格納方法を示します。ファイルフォーマットの中には、フォーマット情報を含むものもあります。4Dでは、いくつかのファイルフォーマットがサポートされており、更にいくつかの内部フォーマット機能を提供しています。
4Dでは次のファイルフォーマットがサポートされます。
このフォーマットは、レコード内の各フィールドを“フィールド終了”区切り文字で区切り、各レコードを“レコード終了”区切り文字で区切ります。フィールドやレコードの区切り文字のデフォルト値は、それぞれタブとリターンです。 このフォーマットは特定の文字セットを持たないため、文字セット メニューにて任意の文字セットを選択できます (デフォルトは UTF-8です)。また、USE CHARACTER SET コマンドを使って指定することもできます。UTF-16はサポートされていません。
文字セットをUTF-8に設定すると、4Dはテキストへの書き出しの際に Byte Order Mask (BOM) を追加します。読み込みの際に BOM を探知した場合には、BOM によって指定された文字セットが優先されます。
固定長テキストフォーマットは、一定の文字数を各フィールドに割り当てます。フィールド終了区切り文字は使用されません。それよりも少ない文字数でレコードの値が収まる場合でも、すべてのレコードは同じ文字数になります。割り当てられた文字数よりもレコードの値が短い場合は、充てん文字 (通常はスペース) を用いてフィールドが埋められます。各データタイプに対して充てん文字を指定するか、またはデフォルトの文字を使用することができます (埋め文字文字ページ を参照してください)。一方で、フィールドに割り当てられた文字数よりも値の文字数が多い場合は、その値が切り捨てられます。
固定長テキストを読み込む際に、4Dは充てん文字を消去します。
このフォーマットのその他の特性については、テキストフォーマットと同様です。
Data Interchange Formatフォーマット (データ交換フォーマット) の略語です。
DIFはデータ交換のための標準であり、規則として"IBM437"セットを使用します。この文字セットは別名"Latin-US (DOS)"とも呼ばれます。この名前は
CONVERT FROM TEXT と
Convert to text コマンドでサポートされます。このフォーマットを選択すると、4Dは
USE CHARACTER SET コマンドで設定された読み込み/書き出しフィルター設定を無視します。
プラットフォームを選択するとレコード区切り文字のみを決定します。WindowsではCR/LF、Mac OSではCRです。
DIFフォーマットでは文字データ中に改行 (文字コード0x0Aと0x0D) を含むことができません。書き出し時に4Dはこれらの文字をスペースに置き換えます。さらにダブルクォーテーションが内部的な区切り文字として使用されます。文字データ中のクォーテーションマークは、ふたつの " にエスケープされて書き出されます。 例えば Monday\rTuesday"Wednesday" は "Monday Tuesday""Wednesday""" となります。
データを読み込む際、4Dは文字列の最後にある埋め文字を取り除きます。
dBase は、DOS およびWindows のデータベースアプリケーションで一般的に使用されるファイルフォーマットです。
4DはDIFフォーマットと同様にこのフォーマットを処理します。
DBFフォーマットの場合、文字列は埋め文字を使用して固定長で書き出されます (データ型に応じて' 'または'0')。データ読み込みの際、データの後ろにある埋め文字は取り除かれます。
SYmbolic LinK フォーマットの略語です。
このフォーマットには特定の文字セットは指定されていません。必要に応じて文字セットメニュー (デフォルトはUTF-8) またはUSE CHARACTER SET コマンドを使用して選択できます。Byte Order Markは使用されません。UTF-16はサポートされません。
レコード区切り文字はプラットフォームに応じます。WindowsではCR/LF、macOSではCRです。
書き出される文字列中に含まれる改行 (0x0D) は以下のようにエスケープされます: Windowsでは<escape><blank>: 、macOSでは <escape><blank>= 。
4D固有のフォーマットであり、このフォーマットにより、異なる4Dデータベース間でのレコード交換を容易に行うことができます。このフォーマットでは、ピクチャーやBLOB やオブジェクトをはじめ、すべての4D データタイプがサポートされます。4D書き出しファイルの拡張子は“.4IE”です。
読み込みや書き出しを行う際、ファイルがMacintosh またはWindows 環境のいずれに対応するかの指定はできなくなりました。また、文字セットを指定することもできません (Unicodeが適用されます)。読み込みおよび書き出しフィルタでUSE CHARACTER SET コマンドを実装しているものは無視されます。
XML (eXtensible Markup Language) はデータ変換の規格です。この言語はタグの使用を基本とし、交換されるデータとその構造は、このタグを用いて正確に記述することができます。XML ファイルはテキストフォーマットのファイルであり、その内容はデータを読み込むアプリケーションにより解析されます。大多数のアプリケーションがこのフォーマットをサポートしています。XML の用語に関する詳細は、4Dランゲージリファレンス マニュアルのXML を参照してください。
このフォーマットは特定の文字セットと関連しておらず、任意の文字セットを書き出しダイアログボックスにて指定できます。XMLファイル内に文字セットの指定が含まれます。USE CHARACTER SET コマンドを用いて指定した読み込み/書き出し用文字セットは無視されます。
“レコード終了”区切り文字はプラットフォームによって違います: Windows ではReturn+ラインフィード、Macintosh ではReturnです。
読み込み、あるいは書き出しを行うファイルフォーマットについて、次のオプションが選択できます。
テキスト、SYLK、そしてXML (書き出し) のファイルフォーマットを扱う場合には、文字セット メニューを利用できます。このメニューには IANA で定義された標準的な文字セットのリストが含まれます (詳細な情報は次ののWeb サイトを参照してください: http://www.iana.org/assignments/character-sets )。
注: DIF およびDBF フォーマットでは文字セット メニューが"IBM437" に固定されます。またこのメニューは4Dフォーマットでは使用できません。
書き出しの場合、このメニューを使用してデータ書き出しに使用する文字セットを指定できます。 読み込みの場合、このメニューを使用して、読み込まれたデータのエンコーディングを指定できます。書き出しファイルのヘッダーににBOM が含まれる場合 (ヘッダーページ 参照)、読み込みデータのエンコーディングは定義済みとなるため、このメニューは利用不可になります。 読み込みおよび書き出し処理における、デフォルトのエンコーディングはUTF-8か、あるいはUSE CHARACTER SET コマンドが実行されている場合には、それによって指定された文字セットになります。読み込み/書き出しダイアログボックスにて特定のエンコーディングを指定しても、アプリケーション自身のカレント文字セットに影響はないことに注意してください。
このメニューを使って、フィールド、レコード、ファイルの区切り文字 を設定することができます。次のオプションから選択できます:
自動: 書き出しプラットフォームに基づいて、レコード終端文字を設定します。 Macintosh: フィールドの終わり = Tab、レコードの終わり = 改行、ファイルの終わり = なし。 Windows: フィールドの終わり = Tab、レコードの終わり = 改行+ラインフィード、ファイルの終わり = なし。 Unix: 終端文字 = ラインフィード。 カスタム: 区切り文字ページ を表示します。