小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

文件輸入/輸出

 昵稱9979883 2012-05-16
如何打開一個(gè)文件?

你可以使用下面的語句來打開文件。 但請(qǐng)注意,如果你不使用任何附加值,打開的文件只能進(jìn)行讀取而不能更改。而且是二進(jìn)制模式。

如果你沒有指定目錄,系統(tǒng)將使用配置參數(shù)DIR_HOME定義的目錄作為默認(rèn)目錄。 因此  我建議你在文件名變量里使用完整的文件路徑 , 以避免混亂。  

語法

OPEN DATASET <file_name>.

SY-SUBRC = 0. “文件打開.

SY-SUBRC = 8. “文件無法打開。

如何從文件中讀取數(shù)據(jù)?

如果你想從文件中讀取數(shù)據(jù),可以使用”O(jiān)PEN DATASET“ ”READ DATASET 語句.  只要用戶有更改權(quán)限, 這個(gè)語句就能以讀取/更新模式打開文件。

如果用戶沒有更改權(quán)限,文件只以'讀取'模式打開。 如果這仍然不能打開文件,錯(cuò)誤信息就會(huì)出現(xiàn)。

 下面的代碼范例顯示如何打開一個(gè)文件,一行行讀出數(shù)據(jù),并保存數(shù)據(jù)到一個(gè)內(nèi)部表中。

DATA: input_file(40TYPE c,
itab(
94OCCURS 0 WITH HEADER LINE,
msg(
100).

OPEN DATASET input_file FOR INPUT IN TEXT MODE
ENCODING DEFAULT MESSAGE msg.

IF sy-subrc NE 0.
  
WRITE:/ 'ERROR opening file', input_file, 'with message',
ELSE.
  
DO.
    
READ DATASET input_file INTO itab.
    
IF sy-subrc = 0.
      
APPEND itab.
    
ENDIF.

ENDDO.

  CLOSE DATASET input_file.
ENDIF.  

如何到一個(gè)文件中填寫數(shù)據(jù)

如果你需要保存數(shù)據(jù)到一個(gè)文件中,你可以使用“OPEN DATASET”

對(duì)于OUTPUT的語句, 只要用戶有文件讀取的授權(quán), 此語句試圖以'/更新'模式打開文件。  如果用戶沒有授權(quán),系統(tǒng)中打開''模式文件。

如果該文件已存在,其現(xiàn)有的內(nèi)容被刪除。

如果該文件不存在,系統(tǒng)會(huì)創(chuàng)建一個(gè)新文件。

代碼范例通過循環(huán)(LOOP)從 內(nèi)表中讀取數(shù)據(jù), 然后一行行地轉(zhuǎn)移到文件中。

DATA: output_file(40TYPE c,
itab(
94OCCURS 0 WITH HEADER LINE,
msg(
100).

OPEN DATASET output_file FOR OUTPUT IN TEXT MODE
ENCODING DEFAULT MESSAGE msg.
IF sy-subrc EQ 0.
  
LOOP AT itab.
    
TRANSFER itab TO output_file.
  
ENDLOOP.
  
CLOSE DATASET output_file.
ELSE.

 WRITE:/ 'ERROR: Writing file with message', msg.
ENDIF.  

如何將數(shù)據(jù)加到一個(gè)文件的尾部?

前面的范例是把數(shù)據(jù)加到一個(gè)文件中。

如果文件在系統(tǒng)中存在,舊的內(nèi)容會(huì)被刪除然后加進(jìn)新的數(shù)據(jù)。 但在很多情況下,你不想清除現(xiàn)有的內(nèi)容。

你只是想追加新的內(nèi)容到文件的末尾。

要做到這一點(diǎn),你可以使用“OPEN DATASET... FOR APPENDING“語句這個(gè)語句會(huì)試圖打開文件成追加'模式, 然后你可以把新的數(shù)據(jù)加到文件的末尾。

如何使你的文件I / O程序可以在不同的操作系統(tǒng)下運(yùn)行?

正如你在下面的例子中看到,你需要提供一個(gè)邏輯文件名和所屬操作系統(tǒng)的名稱,從而獲得實(shí)時(shí)的物理文件名。

If you don't specify the operating system, the function module will use system defined operating system name, sy-opsys, by default. 如果你不指定操作系統(tǒng),功能模塊將使用系統(tǒng)定義的默認(rèn)操作系統(tǒng)的名(SY - opsys)。 

DATA: lv_filenam TYPE string.

CALL FUNCTION 'FILE_GET_NAME'
EXPORTING
*  CLIENT                       = SY-MANDT

logical_filename             = '<file_name>'

*  OPERATING_SYSTEM             = SY-OPSYS
*  PARAMETER_1                  = ' '
*  PARAMETER_2                  = ' '
*  PARAMETER_3                  = ' '
*  USE_PRESENTATION_SERVER       = ' '

*  WITH_FILE_EXTENSION          = ' '
*  USE_BUFFER                   = ' '
*  ELEMINATE_BLANKS             = 'X'
* IMPORTING *進(jìn)口
*  EMERGENCY_FLAG               =
*  FILE_FORMAT                  =

file_name                    = lv_filenam
EXCEPTIONS
file_not_found               = 
1
OTHERS                       = 2.

IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.  

如何在ABAP程序里運(yùn)行Windows /Unix命令?

如果你是一個(gè)UnixWindows操作系統(tǒng),下面的代碼范例顯示如何在該操作系統(tǒng)上運(yùn)行命令。

該機(jī)制其實(shí)就是打開一個(gè)文件 , 運(yùn)行命令。 然后將運(yùn)行結(jié)果寫入一個(gè)文件。

代碼范例顯示了如何運(yùn)行的Unix命令。

如果你在Windows系統(tǒng)上,你只需把文件的路徑和命令更改成Windows格式。

DATA: result_file(50VALUE '/tmp/test',
msg_text(
50),
command(
255VALUE 'ls'.

OPEN DATASET result_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT
FILTER command 
MESSAGE msg_text.
CLOSE DATASET result_file.
DELETE DATASET result_file.  

如何從應(yīng)用服務(wù)器(Application Server)上檢索到文件列表

使用功能模塊“RZL_READ_DIR_LOCAL”, 你可以從應(yīng)用服務(wù)器上得到給定的文件目錄中的文件列表。

下面的代碼范例顯示了如何從當(dāng)前目錄檢索文件列表。

DATA: lv_fdir TYPE pfeflnamel VALUE '.',
it_files 
LIKE salfldir OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'RZL_READ_DIR_LOCAL'
  
EXPORTING
    name     = lv_fdir
  
TABLES
    file_tbl = it_files.

LOOP AT it_files.
  
WRITE: / it_files-name.
ENDLOOP.  




















    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多