CSVRecord ステレオタイプ

CSVRecord ステレオタイプは、コンマ区切り値 (CSV) ファイルに関連付けられる変数の基礎となるレコード・パーツをカスタマイズします。

CSV ファイルの各レコードには、データ行が含まれます。 行内の各列の情報は、コンマ (デフォルト) などの区切り文字によって区切られています。 CSV ファイルを使用することで、簡単な標準形式による人間が読み取り可能な形でスプレッドシートやデータベースのデータを格納することができます。

次の例では、3 行、4 列のスプレッドシートを示しています。 列には、順に INT、CHAR(3)、DATE?、および STRING が含まれます。
123,yes,3/9/2007,Rahima
-1,no ,9/9/1999,Jorge
92,yes,,Ludmilla
次のレコードは、このデータを EGL に保持するように設計されています。
record CsvRec type CSVRecord 
	{
	  fileName = "empfile", 
	  delimiter = ",",
	  textQualifier = "¥"",
	  style = CsvStyle.quoted,
	  labels = [ "Job Code", "Permanent?", "Hire Date", "First Name" ]
	}
	jobCode int;
	permStatus char(3);
	hireDate date?;
	firstName string;
end

テキスト修飾子

EGL でのテキスト修飾子の使用方法は、 style プロパティーの値に応じて異なります。EGL は、(get next ステートメントによる) 読み取り時にテキスト修飾子文字を解釈し、 (add ステートメントによる) 書き込み時にテキスト修飾子文字を追加します。修飾子は、CSVRecord の一部として保存されることはありません。

上記の CSVRecord に、Ludmilla の代わりに次の値が含まれるとします。
Steve "Sparky"
EGL は、この firstName 変数の書き込みを準備する際、 文字列に埋め込まれたテキスト修飾文字 (二重引用符) を見つけます。 style プロパティーが CSVStyle.quoted に設定されているため、 EGL により文字列の先頭と末尾に追加のテキスト修飾文字が配置されます。 また、文字列内に置かれるテキスト修飾子が二重にされます。続いて、次の行が CSV ファイルに書き込まれます。
92,yes,,"Steve ""Sparky"""
style プロパティーを CSVStyle.escaped に設定したほかはすべて同じ場合、EGL は次の行を書き込みます。
92,yes,,Steve ""Sparky""
style プロパティーを CSVStyle.escaped に設定し、 textQualifier プロパティーを「¥¥」(円記号 1 つ。 エスケープ文字として追加の円記号を使用) に設定すると、 EGL は次の行を書き込みます。
92,yes,,Steve ¥"Sparky¥"
EGL が読み取るときは、逆のプロセスが行われます。元の例に戻り、 EGL で次の行を CSV ファイルから先述のように CSVRecord に読み込むとします。
92,yes,,"Steve ""Sparky"""
EGL は、最初と最後の引用符をテキスト修飾子として認識し、それらを除去します。 また、余分な引用符が除去され、以下が firstName 変数に保存されます。
Steve "Sparky"

CSV ファイルの読み取り/書き込みについての詳細は、ファイル入出力の add に関する考慮事項およびファイル入出力の get に関する考慮事項を参照してください。

互換性

表 1. CSV レコードの互換性に関する考慮事項
プラットフォーム 問題
Java™ 生成およびデバッグ CSVRecord のリソース関連のタイプは、 seqws である必要があります。CSVRecords は、リソース関連で formFeedOnClosetext フィールドを使用しません。他のフィールドが持つ意味は通常どおりです。
COBOL 生成 CSVRecord ステレオタイプはサポートされていません。

フィードバック