逐行顯示檔案內容並允許修改的DCL指令碼

zhyuh發表於2005-12-27

功能: 從螢幕讀取使用者指定的檔案,逐行顯示檔案內容,並允許使用者修改。修改後的檔案儲存為同名檔案的新版本

要點:

1. 迴圈結構的實現

2. IF ... THEN... ENDIF結構

3. READ, WRITE實現對檔案的操作

4. READ/END_OF_FILE=END_LOOP INFILE RECORD

當讀到檔案末尾時轉到END_LOOP所標記的指令碼塊中

5. $ WRITE SYS$OUTPUT "FILE ''FILENAME' DOES NOT EXIST!"

在雙引號裡呼叫symbol時,注意symbol前面要有兩個單引號 ''FILENAME'

[@more@]

$!提示使用者輸入檔名,並判斷檔案在當前目錄下是否存在
$ GET_NAME:
$ INQUIRE FILENAME "FILE NAME"
$ IF F$SEARCH(FILENAME) .EQS. ""
$ THEN
$ WRITE SYS$OUTPUT "FILE ''FILENAME' DOES NOT EXIST!"
$ GOTO GET_NAME
$ ENDIF
$!

$ OPEN/READ INFILE 'FILENAME'
$ OPEN/WRITE OUTFILE 'FILENAME'
$!
$ BEGIN_LOOP:
$ READ/END_OF_FILE=END_LOOP INFILE RECORD
$ WRITE SYS$OUTPUT RECORD
$ INQUIRE/NOPUNCTUATION OK "Change? Y or N [Y]"
$ IF OK .EQS. "N" THEN GOTO WRITE_RECORD
$ INQUIRE RECORD "New Record"
$!
$ WRITE_RECORD:
$ WRITE OUTFILE RECORD
$ GOTO BEGIN_LOOP
$!
$ END_LOOP:
$ CLOSE INFILE
$ CLOSE OUTFILE
$ EXIT

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/207/viewspace-812377/,如需轉載,請註明出處,否則將追究法律責任。

相關文章