PB 存取檔案函式
FileClose() 功能關閉先前用FileOpen()函式開啟的檔案。 語法FileClose ( fileno ) 引數fileno:integer,指定要關閉檔案的檔案控制代碼,該控制代碼使用FileOpen()函式開啟檔案時得到返回值Integer。 函式執行成功時返回1,發生錯誤時返回-1。如果fileno引數的值為NULL,那麼FileClose()函式返回NULL。
FileDelete() 功能刪除指定的檔案。 語法FileDelete ( filename ) 引數filename:string型別,指定要刪除檔案的檔名,其中可以包含路徑返回值Boolean。 函式執行成功時返回TRUE,發生錯誤時返回FALSE。如果filename引數的值為NULL,那麼FileDelete()函式返回NULL。
FileExists() 功能檢查指定的檔案是否存在。 語法FileExists ( filename ) 引數filename:string型別,指定要檢查存在性的檔案的檔名,其中可以包含路徑返回值Boolean。 如果指定檔案存在時返回TRUE,不存在時返回FALSE。 如果filename引數的值為NULL,那麼FileExists()函式返回NULL。 用法如果filename引數指定的檔案被另一個應用加鎖鎖住,那麼FileExists()函式也將返回FALSE。
FileLength() 功能得到指定檔案的長度(以位元組為單位)。 語法FileLength ( filename ) 引數filename:string型別,指定要得到其長度的檔案的檔名,其中可以包含路徑返回值Long。 函式執行成功時返回指定檔案的長度(以位元組為單位)。 如果指定的檔案不存在,函式返回-1。 如果filename引數的值為NULL,那麼FileLength()函式返回NULL。
FileOpen() 功能以指定的讀寫方式開啟指定的檔案,同時返回該檔案的控制代碼。 語法FileOpen(filename{,filemode{,fileaccess{,filelock{,writemode,{creator,filetype}}}}}) filename:string型別,指定要開啟檔案的名稱,其中可以包含路徑 filemode:FileMode列舉型別,可選項,指定檔案開啟方式。有效取值為: ?LineMode! - 預設值,行模式; ?StreamMode! - 流模式 fileaccess:FileAccess列舉型別,可選項,指定檔案訪問方式。有效取值為: ?Read! - 預設值,只讀方式,這樣開啟的檔案只能進行讀操作; ?Write! - 只寫方式,這樣開啟的檔案只能進行寫操作? filelock:FileLock列舉型別,可選項,指定檔案加鎖方式。有效取值為: n LockReadWrite! - 預設值,只有開啟該檔案的使用者能夠訪問該檔案,其它用 戶對該檔案的訪問均被拒絕; n LockRead! - 只有開啟該檔案的使用者能夠讀該檔案,但其它任何使用者均可寫該檔案; n LockWrite! - 只有開啟該檔案的使用者能夠寫該檔案,但其它任何使用者均可讀該檔案; n Shared! - 所有使用者均可讀寫該檔案 writemode:WriteMode列舉型別,可選項,當fileaccess引數指定為Write!時,該引數指定在指定檔案已經存在時資料的新增方式。有效取值為: ?Append! - 預設值,將資料新增到原檔案尾部; ?Replace! - 覆蓋原有資料 creator:可選項,用於Macintosh機,使用四個字元的字串指定檔案的建立者。指定該引數後,必須同時指定 filetype引數filetype:可選項,用於Macintosh機,使用四個字元的字串指定檔案型別返回值Integer。 函式執行成功時返回開啟檔案的控制代碼,隨後的檔案操作函式利用該控制代碼完成對檔案的操作。發生錯誤時函式返回-1。如果任何引數的值為NULL,那麼FileOpen()函式返回NULL。 用法當檔案以行模式開啟時,每執行一次FileRead()函式讀取一行資料;每執行一次FileWrite()函式,該函式自動在寫出的字串末尾增加一個回車(CR)換行(LF)符(這是應用程式在Windows 系統中執行時的情況,在UNIX下只加一個換行字元)。 當檔案以流模式開啟時,執行一次FileRead()函式讀取32,765個位元組的資料,如果餘下資料沒有這麼多,那麼FileRead()函式就讀取所有餘下的資料;執行一次FileWrite()函式時,最多可寫入32,765個位元組的資料,並且不添加回車換行字元。 當檔案以寫方式使用FileOpen()函式開啟時,如果指定的檔案不存在,那麼FileOpen()函式建立該檔案。
FileRead() 功能從指定檔案中讀取資料。 語法FileRead ( fileno, variable ) 引數fileno:integer型別,指定檔案控制代碼(由FileOpen()函式得到) variable:string或blob型別的變數,用於儲存讀取的資料返回值Integer。 函式執行成功時返回讀取的字元數或位元組數; 如果在讀取任何字元前讀到了檔案結束符(EOF),則FileRead()函式返回-100; 當指定檔案以行模式開啟時,如果在讀取任何字元之前遇到了回車(CR)或換行(LF)字元,則FileRead()函式返回0。 如果發生其它錯誤,FileRead()函式返回-1。 如果任何引數的值為NULL,那麼FileRead()函式返回NULL。 用法當指定檔案以行模式(Line Mode)開啟時,FileRead()函式一次讀取一行資料,並把它儲存到引數variable中,然後跳過行結束符(回車換行符,作業系統不同,使用的字元也不同),把檔案指標移動到下一行的起始位置。當檔案以流模式(Stream Mode)開啟時,FileRead()函式或一直讀取到檔案結尾,或讀取32,765位元組的資料,決定於兩者哪個資料長度更短些。
FileSeek() 功能將檔案指標移動到指定位置。讀寫檔案時相應函式會自動移動檔案指標。 語法FileSeek ( fileno, position, origin ) 引數fileno:integer型別,指定檔案控制代碼(由FileOpen()函式得到) position:long型別,指定相對於origin引數指定位置的新位置偏移量,以位元組為單位 origin:SeekType列舉型別,指定從哪裡開始移動檔案指標,即指標移動的基準。有效取值為: ?FromBeginning! - 預設值,從檔案開頭移動指標; ?FromCurrent! - 從當前位置移動檔案指標; ?FromEnd! - 從檔案結尾處移動檔案指標返回值Long。 函式執行成功時返回指標移動後的指標位置。如果任何引數的值為NULL,那麼FileSeek()函式返回NULL。
FileWrite() 功能向指定檔案中寫資料。 語法FileWrite (fileno , variable ) 引數fileno:integer型別,指定檔案控制代碼(由FileOpen()函式得到) variable:string或blob型別,其值將寫入fileno引數指定的檔案返回值Integer。 函式執行成功時返回寫入檔案的字元或位元組數,發生錯誤時返回-1。 如果任何引數的值為NULL,那麼FileWrite()函式返回NULL。 用法FileWrite()函式從當前檔案指標開始寫入指定資料,寫入之後,將檔案指標調整到剛剛寫入資料的下一個位元組位置。 當檔案以writemode引數設定為Replace!方式開啟時,檔案指標最初位於檔案的開頭位置; 當檔案以writemode引數設定為Append!方式開啟時,檔案指標最初位於檔案的結尾位置。 當檔案以行模式開啟時,執行FileWrite()函式時,該函式自動在每次寫入資料的後面加上回車換行符,並把檔案指標移動到回車換行符後面。 當檔案以流模式開啟時,FileWrite()函式一次最多寫入32,765個位元組。如果variable引數中資料的長度超過了32,765個位元組,那麼FileWrite()函式只向檔案中寫入前32,765個字元並返回32,765。
GetFileOpenName() 功能顯示開啟檔案對話方塊,讓使用者選擇要開啟的檔案。 語法GetFileOpenName(title,pathname,filename{,extension{,filter}}) 引數title:string型別,指定對話方塊的標題 pathname:string型別變數,用於儲存該對話方塊返回的檔案路徑及檔名 filename:string型別變數,用於儲存該對話方塊返回的檔名 extension:string型別,可選項,使用1到3個字元指定預設的擴充套件檔名 filter:string型別,可選項,其值為檔名掩碼,指定顯示在該對話方塊的列表框中供使用者選擇的檔名滿足的條件(比如*.*,*.TXT,*.EXE等)返回值Integer。 函式執行成功時返回1; 當用戶單擊了對話方塊上的“Cancel”按鈕時函式返回0; 發生錯誤時返回-1。 如果任何引數的值為NULL,那麼GetFileOpenName()函式返回NULL。 用法filter引數的格式為:description,*. ext預設值為:"All Files (*.*),*.*"其中,description說明副檔名的意義,比如“所有檔案”、“文字檔案”等。你可以根據需要指定在開啟檔案對話方塊中顯示的檔名型別。當需要指定多種檔案型別時,各型別之間使用逗號分隔,例如:"PIF 檔案, *.PIF, 批處理檔案, *.BAT"需要注意的是,該函式只是得到一個檔名,而並沒有開啟檔案,需要開啟檔案時,依然需要使用FileOpen()函式。
GetFileSaveName() 功能顯示儲存檔案對話方塊,讓使用者選擇要儲存到的檔案。 語法GetFileSaveName(title,pathname,filename{,extension{,filter}}) 引數title:string型別,指定對話方塊的標題 pathname:string型別變數,用於儲存該對話方塊返回的檔案路徑及檔名 filename:string型別變數,用於儲存該對話方塊返回的檔名 extension:string型別,可選項,使用1到3個字元指定預設的擴充套件檔名 filter:string型別,可選項,其值為檔名掩碼,指定顯示在該對話方塊的列表框中供使用者選擇的檔名滿足的條件(比如*.*,*.TXT,*.EXE等)返回值Integer。 函式執行成功時返回1; 當用戶單擊了對話方塊上的“Cancel”按鈕時函式返回0; 發生錯誤時返回-1。 如果任何引數的值為NULL,那麼GetFileSaveName()函式返回NULL。 用法filter引數的格式為:description,*. ext預設值為:"All Files (*.*),*.*"其中,description說明副檔名的意義,比如“所有檔案”、“文字檔案”等。你可以根據需要指定在開啟檔案對話方塊中顯示的檔名型別。當需要指定多種檔案型別時,各型別之間使用逗號分隔,例如:"PIF 檔案, *.PIF, 批處理檔案, *.BAT"需要注意的是,該函式只是得到一個檔名,而並沒有開啟檔案,需要開啟檔案時,依然需要使用FileOpen()函式。