9.219 STM_FILE_WRITE
この組み込み関数によって、指定のストリーム・ファイルにデータを書き込みます。このストリーム・ファイルは、STM_FILE_OPENによってあらかじめ開いています。
LineTerminatorオプションを指定してストリーム・ファイルを開いている場合、データ・ブロックにあるデータが書き込まれ、指定の終了文字で終わります。
LineTerminator=NONEオプションを指定してストリーム・ファイルを開いている場合、データ・ブロックにあるデータがデータ・ストリームに書き込まれます。STM_FILE_WRITE_CTL組み込み関数を使用することによって、データ・ストリームの適切な位置に行終了文字を書き込むことができます。
関連する組み込み関数:STM_FILE_OPEN、STM_FILE_READ、STM_FILE_CLOSE、STM_FILE_WRITE_CTL
Line
Terminatorの使用については、「STM_FILE_OPEN」を参照してください。
各製品の対応
LANSA/AD |
使用可 |
Visual LANSA for Windows |
使用可 |
Visual LANSA for Linux |
使用可 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
N |
必須 |
データが書き込まれるファイルのファイル番号(ファイル・ハンドル) この番号は、ストリーム・ファイルに割り当てられ、STM_FILE_OPENで戻されています。 |
1 |
3 |
0 |
0 |
2 |
A |
必須 |
データ・ブロック1 |
1 |
制限なし |
||
3 |
A |
任意 |
データ・ブロック2 |
1 |
制限なし |
||
4 |
A |
任意 |
データ・ブロック3 |
1 |
制限なし |
||
5 |
A |
任意 |
データ・ブロック4 |
1 |
制限なし |
||
6 |
A |
任意 |
データ・ブロック5 |
1 |
制限なし |
||
7 |
A |
任意 |
データ・ブロック6 |
1 |
制限なし |
||
8 |
A |
任意 |
データ・ブロック7 |
1 |
制限なし |
||
9 |
A |
任意 |
データ・ブロック8 |
1 |
制限なし |
||
10 |
A |
任意 |
データ・ブロック9 |
1 |
制限なし |
||
11 |
A |
任意 |
データ・ブロック10 |
1 |
制限なし |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
任意 |
戻りコード OK = データが書き込まれた ER = エラーが発生した |
2 |
2 |
例
このIBM iの例では、ストリーム・ファイルがIBM i IFSに書き込まれます。
ファイルは、ディレクトリ/tmpに書き込まれ、example1.txtという名前が付けられます。
ファイルはテキストとして書き込まれ、各行は復帰改行(CRLF)で終わります。各行のフィールドでは、末尾ブランクが除去されないため、データは固定の書式のように見えます。
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(#OPTIONS) TYPE(*CHAR) LENGTH(256) DESC('Options for stream file open')
CHANGE FIELD(#OPTIONS) TO('''WRITE notrim Text lineTerminator= CRLF CodePage=819''')
**********
USE BUILTIN(STM_FILE_OPEN) WITH_ARGS('''/tmp/example1.txt''' #OPTIONS) TO_GET(#FILENO #RETNCODE)
IF COND('#retncode *NE OK')
MESSAGE MSGTXT('Error occurred on OPEN')
RETURN
ENDIF
**********
********** Read file PSLMST and write to the IFS file example1.txt
********** Each line written contains employee name and phone number.
********** Each line written contains employee name and phone number.
**********
SELECT FIELDS((#SURNAME) (#GIVENAME) (#PHONEBUS)) FROM_FILE(PSLMST)
USE BUILTIN(STM_FILE_WRITE) WITH_ARGS(#FILENO #SURNAME #GIVENAME #PHONEBUS) TO_GET(#RETNCODE)
IF COND('#retncode *NE OK')
MESSAGE MSGTXT('Error writing to stream file')
RETURN
ENDIF
ENDSELECT
**********
********** Close stream file and finish
**********
USE BUILTIN(STM_FILE_CLOSE) WITH_ARGS(#FILENO)
RETURN