Page History
9.219.2 その他のパラメータ
Alpha、Char、String、BLOB、CLOBフィールドでの無効文字の処理
| Anchor | ||||
|---|---|---|---|---|
|
...
- B - ブランクに置き換え
無効文字は出力ストリームでブランク文字に置き換えられます。 - I - 無視
無効文字の表示は無視されます。無効文字は出力ストリームに含まれます。したがって、以後、他のアプリケーションの処理でファイルが破壊される可能性があります。 - R - 出力から削除する
無効文字は出力ストリームから削除されます。このオプションにより出力フィールドの長さは1桁短くなります。「固定形式」の出力ファイルを作成するときにこのオプションを使用するべきではありません。
...
def_list #head fields(....) type(*working) entrys(1)
def_list #line fields(....) listcount(#count) type(*working) entrys(100)
select fields(...) from_file(orders)
inz_list #head num_entrys(1)
use TRANSFORM_LIST #head (with "do not close" option)
select fields(...) from_file(lines) with_key(...)
add_entry #line
if (#count = 100)
use TRANSFORM_LIST #line (with "do not
close" option)
clr_list #line
endif
endselect
use TRANSFORM_LIST #line (with "do not close"
option)
clr_list #line
endselect
use TRANSFORM_LIST #line (an empty list with "close"
option).
このオプションおよび組み込み関数の使用に関するいくつかのヒントを以下に示します。
- この組み込み関数は、Visual LANSAアプリケーションと外部アプリケーションとの間のインターフェースとなることを目的に作成されました。このファンクションは、ファイルをオープンしてデータをファイルに書き込んだ後に、ファイルを再度クローズするように作られています。このファンクションは、「常時オープン」ログ・ファイル保守のような、さらに複雑な「システム」レベルのタスクをサービスすることを目的とするものではありません。
- 50個までの出力ファイルを同時にオープンできます。お使いのオペレーティング・システムによっては、これより少ない制限または構成オプションが使用される場合があります。
- 最大レコード長に対する制限はありません。各レコードの最後に、改行(NL)文字がレコードの終わりを示す区切り文字として追加されます。
- 作成したファイルがLANSA 10.0 以前のバージョンのTRANSFORM_FILEで読み込まれる場合、レコードの最大長は20000バイトにしなければなりません。
- この組み込み関数の最後の呼び出しで、必ず出力ファイルがクローズされるようにします。単にファイルをクローズして、これ以上データを追加しない場合は、空またはクリアした作業リストを渡します。
- この組み込み関数は、呼び出される度にすべての引数をチェックして、現在オープンされている出力ファイルのリストから一致するものを検索する必要があります。したがって、大量のエントリーが含まれるリストを使って呼び出しを少なくする場合が最も効率が良く、少しのエントリーしか含まれないリストを使って何度も呼び出す場合は最も非効率になります。
...
- 日付をY M Dで表します。ここで、Yは年、Mは、月(1月 = 1、2月 = 2など)、Dは、その月内の日です。
- 月が1月または2月の場合、新しいYを得るために年から1を引き、新しいMを得るために月に12を足します(つまり、1月と2月は、前年の13番目と14番目の月と考えます)。
- すべての乗法と除法の結果から端数部分を取り、次のように計算します。
A = Y/100
B = A/4
C = 2-A+B
E = 365.25x(Y+4716)
F = 30.6001x(M+1)
JD= C+D+E+F-1524
このようにして計算された値が、該当の日付の始まり (UTC0時) のユリウス通日となります。
...
| Note |
|---|
注意:この方法によって、 Gregorian Proleptic Calendar (つまり、グレゴリオ暦のうるう年規則を使用して、1582年より前の年にグレゴリオ暦を遡らせることによって得られる暦) 上の正確な日付は得られません。特に、Y<400の場合、この方法は失敗します。 |
Z = JD
W = (Z - 1867216.25)/36524.25
X = W/4
A = Z+1+W-X
B = A+1524
C = (B-122.1)/365.25
D = 365.25xC
E = (B-D)/30.6001
F = 30.6001xE
月の日 = B-D-F
月 = E-1またはE-13 (12以下の数値を取得する必要がある)
年 = C-4715 (1月または2月の場合)またはC-4716 (それ以外の場合)