Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../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

有効な値は以下のとおりです。 

CR 
LF (デフォルト値)

CRLF NL

 
CRLF 
NL 
LFCR

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