Page History
[ |../../index.htm#lansa/stm_file_write_ctl.htm]
現在地:
...
9.208 STM_FILE_WRITE_CTL
| Note |
|---|
注意 |
...
: 9.1 |
...
この組み込み関数によって、データ・ストリームに行終了文字を書き込みます。 この組み込み関数によって、データ・ストリームに行終了文字を書き込みます。
関連する組み込み関数:STM_FILE_OPEN、STM_FILE_CLOSE、STM_FILE_WRITE、STM_FILE_READ
READ
引数
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
1 | N | 必須 | 行終了文字を書き込むファイルのファイル番号(ファイル・ハンドル) この番号は、STM_FILE_OPENによってストリーム・ファイルに割り当てられています。 | 1 | 3 | 0 | 0 |
2 | A | 任意 | 書き込む行終了文字 |
有効な値は以下のとおりです。 CR |
| 1 | 10 |
戻り値
番号 | タイプ | 必須/任意 | 記述 | 最小長 | 最大長 | 最小小数桁数 | 最大小数桁数 |
|---|---|---|---|---|---|---|---|
2 | A | 任意 | 戻りコード OK = |
終了文字が書き込まれた ER = エラーが発生した | 2 | 2 |
例
このIBM iの例では、ストリーム・ファイルがIBM IFSに書き込まれます。ファイルは、ディレクトリ/tmpに書き込まれ、example2.txtという名前が付けられます。 txtという名前が付けられます。
データは、データベース・ファイルPSLMSTからの従業員番号の後に、その従業員のスキル・コードが続く形で書き込まれます。スキルは、コンマによって区切られます。
データは、データベース・ファイルPSLMSTからの従業員番号の後に、その従業員のスキル・コードが続く形で書き込まれます。スキルは、コンマによって区切られます。従業員に関するデータの終わりは、次の例のように、復帰改行従業員に関するデータの終わりは、次の例のように、復帰改行(CRLF)によって示されます。 によって示されます。
A0001,ADVPGM,CS A0008 A0013 CS
A0008
A0013
A0090,CL,COBOL,ECD,INTRO,MANAGE1,MARKET2,MARKET3,MBA,RPG RPG
開くときのオプションがLineTerminator=NONEのため、行終了文字は、STM_FILE_WRITEによって自動的に書き込まれません。行終了文字は、従業員に関する情報の最後にSTM_FILE_WRITE_CTLによって書き込まれます。
FUNCTION OPTIONSCTLによって書き込まれます。
FUNCTION OPTIONS(*DIRECT)
...
**********
...
DEFINE FIELD(#FILENO)
...
TYPE(*DEC)
...
LENGTH(3)
...
DECIMALS(0)
...
DESC('
...
Allocated file number')
...
DEFINE FIELD(#RETNCODE)
...
TYPE(*CHAR)
...
LENGTH(2)
...
DEFINE FIELD(#COMMA)
...
TYPE(*CHAR)
...
LENGTH(1)
...
DEFAULT(',')
...
DEFINE FIELD(#OPTIONS)
...
TYPE(*CHAR)
...
LENGTH(256)
...
DESC('
...
Options for stream file open')
CHANGE FIELD(#OPTIONS)
...
TO('''
...
WRITE Text CodePage=819 LineTerminator=NONE''')
**********
...
USE BUILTIN(STM_FILE_OPEN)
...
WITH_ARGS('''/tmp/example2.txt'''
...
#OPTIONS)
...
TO_GET(
...
#FILENO #RETNCODE)
IF COND('#retncode *NE OK')
MESSAGE MSGTXT('Error occurred on OPEN')
RETURN
ENDIF
**********
...
**********
...
Read file PSLMST and for each employee get his skills
**********
...
Write to stream file employee no and list of skills
**********
...
comma delimited. Terminate with a CRLF.
**********
...
SELECT FIELDS((#EMPNO))
...
FROM_FILE(PSLMST)
...
USE BUILTIN(STM_FILE_WRITE)
...
WITH_ARGS(
...
#FILENO #EMPNO) TO_GET(#RETNCODE)
**********
...
SELECT FIELDS((#SKILCODE))
...
FROM_FILE(PSLSKL)
...
WITH_KEY(#EMPNO)
...
USE BUILTIN(STM_FILE_WRITE)
...
WITH_ARGS(
...
#FILENO #COMMA #SKILCODE) TO_GET(#RETNCODE)
...
ENDSELECT
**********
...
Add line terminator at end of details for employee
USE BUILTIN(STM_FILE_WRITE_CTL)
...
WITH_ARGS(
...
#FILENO CRLF) TO_GET(#RETNCODE)
...
ENDSELECT
**********
...
**********
...
Close stream file and finish
**********
...
USE BUILTIN(STM_FILE_CLOSE)
...
WITH_ARGS(#FILENO)
...
RETURN