频道栏目
首页 > 数据库 > Sybase > 正文
PB9读写大容量文件的方法
2012-02-17 16:50:39           
收藏   我要投稿
  在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的专栏
点击复制链接 与好友分享!回本站首页
相关TAG标签 大容量 文件 方法
上一篇:pb中获取多行文本编辑框(mle控件)指定行的内容
下一篇:pb获取文本文档(txt文件)总行数的方法
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站