| 如何打開一個(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(40) TYPE c, OPEN DATASET input_file FOR INPUT IN TEXT MODE IF sy-subrc NE 0. ENDDO.   CLOSE DATASET input_file. 如何到一個(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(40) TYPE c, OPEN DATASET output_file FOR OUTPUT IN TEXT MODE  WRITE:/ 'ERROR: Writing file with message', msg. 如何將數(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' logical_filename             = '<file_name>'
 *  OPERATING_SYSTEM             = SY-OPSYS *  WITH_FILE_EXTENSION          = ' ' file_name                    = lv_filenam IF sy-subrc <> 0. 如何在ABAP程序里運(yùn)行Windows /Unix命令?
 如果你是一個(gè)Unix或Windows操作系統(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(50) VALUE '/tmp/test', OPEN DATASET result_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT 如何從應(yīng)用服務(wù)器(Application Server)上檢索到文件列表?
 使用功能模塊“RZL_READ_DIR_LOCAL”, 你可以從應(yīng)用服務(wù)器上得到給定的文件目錄中的文件列表。 下面的代碼范例顯示了如何從當(dāng)前目錄檢索文件列表。 DATA: lv_fdir TYPE pfeflnamel VALUE '.', LOOP AT it_files. | 
|  |