lee50310
发表于 2022-6-15 09:28:25
本帖最后由 lee50310 于 2022-6-16 18:46 编辑
檔案存取分類
一般的檔案存取的方式大致分為二種,循序 與 隨機
1. 循序存取檔案:就像是傳統的錄音帶一樣,我們如果要聽第 5 首歌,我們必
須要先聽完前4首歌,或者用快轉過去,才能夠聽到第 5 首
歌,無法直點點選想要的曲目。
2. 隨機存取檔案:就是我們知道 第五首歌 的位置在 第幾分幾秒
那麼只要輸入此值便可很快找到這首歌不用重頭聽到尾
lisp要打開文件,我們使用open函數,除了文件的完整路徑外,還需要一個參數打開模式。此參數可以具有以下值:
(open filename mode) filename(檔案名):要打開的文件的名稱和路徑。如果未指定文件的完整路徑名,打開預設的AutoCAD默認目錄。
mode(模式)指示文件是否已打開以進行讀取,寫入或追加。
指定包含以下字母之一的字符串:
"r":(閱讀)閱讀;
"w" :(寫)寫(覆蓋任何現有文本);
"a" :(追加)開啟追加。如果filename不存在,則創建並打開一個新文件。
如果filename已存在,寫入(追加在現有文本之後)。
open返回指向文件的指針,如果文件不存在則創建。使用close函數後必須關閉文件。
打開文件後,配合的函數
可以使用read-line函數讀取它。此函數連續返回文件的每一行,直到沒有更多行為止。它通常與while循環使用。
write-line函數用於在打開寫入的文件中寫入一行。
write-char和read-char函數的工作方式與write-line和read-line類似,但它們不是每行寫入或返回一個字符串,而是每個字符寫入或返回一個 ascii 代碼。
最後是 關閉檔 close 函數
lee50310
发表于 2022-6-15 10:11:21
本帖最后由 lee50310 于 2022-6-15 15:13 编辑
提供一個範例將 TESTFILE.TXT 文字檔 寫入硬碟 D槽 TEMP路徑下
(PS: D槽必需建立 TEMP目錄夾 否則檔案無法存入)
;;簡單文字檔寫入例子
;;
;;-------------------------------------------------------------------------------
(defun c:tt()
(setq fn (open "D:/TEMP/TESTFILE.TXT" "w")) ;;覆蓋內容 參數:w
(write-line "*** 這是一個檔案練習範例. ***" fn)
(write-line "測試一" fn)
(write-char 266 fn) ;;換行
(write-line (strcat " key = "(chr 34) "sizze" (chr 34) ";") fn) ;;空格 (chr 34)
(write-line(strcat " label = "(chr 34) "title" (chr 34) ";") fn)
(close fn)
)
;;-------------------------------------------------------------------------------
可將程式 OPEN 函數的 參數 "w" 改為 "a"後存檔
執行指令tt觀察 TESTFILE.TXT 檔 有何不同
柳飘飘
发表于 2022-6-16 08:43:18
lee50310 发表于 2022-6-15 09:28
檔案存取分類
一般的檔案存取的方式大致分為二種,循序 與 隨機
谢谢版主的分享,我好好看看,学习一下。
桃子
发表于 2022-6-16 13:38:38
强强强