程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase教程 >> PB9讀寫大容量文件的方法

PB9讀寫大容量文件的方法

編輯:SyBase教程

  在pb9中,系統自帶的讀寫文件的函數是fileread和filewrite,這兩個函數最大的限制是讀寫量:一次最大只能讀寫32765字節的數據。這個限制導致它本身不適用於讀寫大容量的文件。
        下面給出使用流stream方式讀寫文件的方法,包括兩個全局函數f_readfile(string as_file)和f_writefile(blob ab, string as_file),分別用於讀文件和寫文件。
  
        (1)讀文件函數:blob f_readfile(string as_file)
 
global function blob f_readfile (string as_file); 
//pb9讀取文件內容的方法by yyoinge 20111104 
blob lb 
if not fileexists(as_file) or filelength(as_file) = 0 then return lb 
oleObject ADODB 
ADODB = CREATE OLEObject    
if ADODB.ConnectToNewObject("ADODB.Stream")    <> 0 then 
    messagebox('提示', '無法連接【ADODB.Stream】!無法讀文件!') 
    return lb 
end if 
ADODB.Type = 1 //二進制數據Binary    
ADODB.Mode =3 //具有讀/寫權限    
ADODB.Open()    
ADODB.LoadFromFile(as_file)    
ADODB.Position = 0 //Position為0才能設置Charset    
ADODB.Type = 1 //blob數據      
lb = ADODB.Read() 
//清空緩沖區數據 
ADODB.flush()  
//關閉流 
ADODB.Close()  
destroy ADODB 
 
return lb 
end function 
 
        (2)寫文件函數:integer f_writefile(blob ab, string as_file)
 
global function integer f_writefile (blob ab, string as_file); 
//pb9寫文件內容的方法by yyoinge 20111104 
int li = 1 
oleObject ADODB 
ADODB = CREATE OLEObject    
if ADODB.ConnectToNewObject("ADODB.Stream")    <> 0 then 
    messagebox('提示', '無法連接【ADODB.Stream】!無法寫文件!') 
    return -1 
end if 
ADODB.Type = 1 //二進制數據Binary    
ADODB.Mode =3 //具有讀/寫權限    
ADODB.Open()      
ADODB.Position = 0  
 
ADODB.Write(ab)  
try 
    ADODB.savetofile(as_file, 2) 
catch (oleruntimeerror er) 
    messagebox('提示', '無法寫文件到【' + as_file + '】!~r~n可能的原因有:①文件路徑不存在,②磁盤空間不夠') 
    li = -1 //無法保存文件,可能的原因有:①as_file有誤,②磁盤空間不夠 
end try 
//清空緩沖區數據 
ADODB.flush()  
//關閉流 
ADODB.Close()  
destroy ADODB 
 
return li 
end function 
 
 
        (3)調用方法
 
//讀取文件E:\a.txt的內容,並寫到文件E:\aat.dat中 
f_writefile(f_readfile("E:\a.txt"), "E:\aat.dat") 
 
 

摘自 yyoinge的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved