区切りファイルと固定幅ファイルとは?

ファイルの各行はデータの行を表しますが、そのデータは通常、フィールドまたは列に分割されます。 2 つの標準的な方法でフィールドを描写します。 1 つは、固定長のフィールドを持つことであり、したがって固定長のレコードを持つことです。もう 1 つは、可変長レコードを持つ可変長フィールドを持つことです。可変長フィールドは、区切り記号である記号で区切る必要があります。可変長レコードのデータベースは区切りファイルを生成し、固定長レコードのデータベースは固定幅ファイルを生成します。
区切り文字
区切りファイルの最も一般的な形式では、コンマをフィールド セパレータとして使用します。これらのファイルは、カンマ区切り値 (CSV) ファイルと呼ばれます。コンマは数値データに適していますが、テキストでは問題を引き起こす可能性があります。その他の区切り文字には、スペース (" ") バー ("|") または帽子記号 ("^") が含まれます。ファイルの設計者またはプログラマーは、データでめったに使用されない文字を見つける必要があります。文字の組み合わせを使用する必要がある場合もあります。
固定フィールド
ファイルに格納されるデータで 1 文字が使用されないことを常に保証できるとは限らないため、適切な区切り文字を見つけるのが難しいため、固定長フィールドが望ましい場合があります。この形式では、ストレージと処理の両方でオーバーヘッドが発生するため、区切りファイルがより一般的です。固定長フィールドはパディングする必要があります。パディングの最も一般的な形式は、数値データのゼロによる左パディングとテキストのスペースによる右パディングです。
手順
ファイルが固定幅であるか、区切られたフィールドを含むかに関係なく、書き込みプログラムと読み取りプログラムは同じ規則に従う必要があります。固定幅ファイルを受け取るプログラムは、最初に各フィールドの長さとデータ型を知る必要があります。区切りファイルを受け取るプログラムは、検索する区切り文字を認識している必要があります。
拒否されたレコード
いずれの場合も、インポート プログラムには、拒否されたレコードを別のファイルに書き出す例外報告手順が必要です。区切りレコードが拒否される最も一般的な理由は、区切り文字がデータに表示され、余分な列が作成されることです。通常、固定幅レコードは長すぎるために拒否されます。通常、短いレコードではエラーは発生しません。最後のフィールドは空になります。最後のフィールドが必須の場合、短いレコードは拒否されます。