1 レコードが複数行のテキスト入力ファイル

Text コネクションでは、複数の連続するテキスト行で構成される入力データも読み込めます。1 レコードあたり複数行の形式では、1 つのレコードとその次のレコードを区切る、入力レコードの区切り記号 (一意の文字または文字列) が必要です。Text コネクションでは、この入力レコードの区切り記号を指定してください。レコードの区切り記号は、最大 256 文字まで可能です。通常、入力レコードの区切り記号には、フォームフィード文字 (¥f) やパラグラフ記号 (¶) などの単一の文字を使用します。

前出の 1 レコードあたり 1 行形式のサンプル入力ファイルの最初の 3 行を、1 レコードが複数行の形式にすると、次のようになります。入力レコードの区切り記号は、パラグラフ記号 (¶) です。

IDN:566238744
Nm:Carol Ann Wilson
Tel:1025557746
Bal:4000098
Pmt:30000
Date:10-15-93

IDN:012358743
Nm:Nathan Varberg
Tel:1015552345
Bal:300000
Pmt:25000
Date:10-11-93

IDN:524135698
Nm:David Fein
Tel:1015553222
Bal:3559955
Pmt:102550
Date:09-30-93

この 1 レコードが複数行のデータを変換するには、ZID フィールドを次のように定義します。

Type: TYPE TEXT VALUE "Customer"
Idno: TYPE TEXT START 5 UNTIL "¥nNm:"
Name: TYPE TEXT UNTIL "¥nTel:"
Tel:  TYPE TEXT UNTIL "¥nBal:"
Balance: TYPE NUMBER.2 "¥nPmt:"
Payment: TYPE NUMBER.2 "¥nDate:"
Date: TYPE DATE FORMAT MM.DD.yy

この設定方法を 1 レコードが 1 行の形式の場合と比べてみてください。レコードの区切り記号として ¥0x14 を使用しています。エスケープシーケンス文字 (¥0x14) をレコードの区切り記号として使用するときは、16 進数形式で記述します。ASCII 文字の 16 進数表記については、ASCII 文字と 16 進数表記の対応表を参照してください。

UNTIL も、特殊なエスケープシーケンス (¥n) を含む複数の文字で指定されていて、入力フィールドの値を区切る改行文字の記述が可能です。シーケンス (¥n) は単一の改行文字を表します。

入力レコードは複数の行にわたっています。IDNO フィールドは列 5 (「IDN:」ラベルの直後) から開始し、Text コネクションが文字列「¥nNm:」を検出した時点で終了します。以降同様に、フィールドの開始位置と終了位置が決められます。前の例と同様に、DATE フィールドには UNTIL が付けられていないことに注目してください。UNTIL の指定は必要ありません。レコードの最終値の終端をスキャンするときには、Lotus® Connector for Text は常にデータレコードの終端で停止するためです。