PB中读写文件通用的两个函数

1、文件读取 :

//函数名:f_readfile //功能:读取文件//参数://  io_file:ref blob 大对象类型,存储读出的文件内容;//  is_filename:string 文件名//返回值:int  1-成功 0-失败

LONG ll_len
int li_FileNum,li_count,loops,i,bytes_read
blob lblb_b,tot_b
int liResult=1

ll_len=FileLength(is_filename)
IF ll_len > 32765 THEN
 IF Mod(ll_len, 32765) = 0 THEN
  loops = ll_len/32765    
 ELSE
  loops = (ll_len/32765) + 1
 END IF
ELSE
 loops = 1
END IF

li_FileNum =  FileOpen(is_filename,StreamMode!, read!, lockread!)
if li_filenum = -1 then
 messagebox("","无法打开文件"+ is_filename)
end if

FOR i = 1 to loops
 bytes_read=FileRead(li_FileNum, lblb_b)
 if bytes_read = -1 then
        messagebox("","读取文件"+is_filename+"失败!")
    liResult = 0
    exit
 end if
 if i=1 then
  tot_b = lblb_b
 else
  tot_b = tot_b + lblb_b
 end if 
NEXT
Fileclose(li_FileNum)

if liResult = 1 then
 ib_file=tot_b
end if

return liResult

2、文件写入 :

//函数名:f_writefile
//功能:写入文件
//参数:
//  io_file:blob  大对象类型,存储将写入的文件内容;
//  is_filename:string  文件名
//返回值:int  1-成功 0-失败

uLONG ll_len,li_count,loops
int li_FileNum
blob lblb_b
int liResult = 1

ll_len=len(ib_file)
IF ll_len > 32765 THEN
 IF Mod(ll_len, 32765) = 0 THEN
  loops = ll_len/32765    
 ELSE
  loops = (ll_len/32765) + 1
 END IF
ELSE
 loops = 1
END IF

li_FileNum =  FileOpen(is_filename,StreamMode!, write!, shared!,Replace!)
if li_FileNum = -1 then
 messagebox("系统提示","无法打开文件"+is_filename)
 return 0
end if
FOR li_count = 1 to loops
 lblb_b = blobmid( ib_file , ( li_count - 1) * 32765 + 1 , 32765 )   
 if FileWrite(li_FileNum, lblb_b) = -1 then
  messagebox("系统提示","写文件" + is_filename+"失败")
  liResult=0
  exit
 end if//8010
NEXT
Fileclose(li_FileNum)

//if liResult=1 then
// liResult = gf_setfiletime(is_filename,idt_file_time)
//end if

return liResult

[PB] PB中读写文件通用的两个函数相关推荐

  1. Linux内核中读写文件数据的方法

    Linux内核中读写文件数据的方法     有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数, ...

  2. php写文件 效率,php中读写文件与读写数据库的效率_PHP教程

    本文章来给大家介绍一个关于php中读写文件与读写数据库的效率对比,有需要了解的朋友可参考. 测试程序如下: //说明1:由于读数据库语句调用简单的封包函数两次,所以把读文件也改成连续调用两次,数据库记 ...

  3. 【转】 Linux内核中读写文件数据的方法--不错

    原文网址:http://blog.csdn.net/tommy_wxie/article/details/8193954 Linux内核中读写文件数据的方法     有时候需要在Linuxkernel ...

  4. Android中读写文件的N种方法

    在android或者java中读写文件时,我们常常面临不知道该用哪种方法来实现,今天我们一起来总结一下N种读写文件的方法. 一.文件输入输出流读写文件 public void writeFileStr ...

  5. 关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法

    MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...

  6. 获取文件名称的两个函数

    获取文件名称的两个函数 FORM f4_filename  changing c_file. CALL FUNCTION 'KD_GET_FILENAME_ON_F4' EXPORTING mask ...

  7. 编程中python怎么读-编程语言如何在Python中读写文件

    从文件读取和写入文件是任何编程语言的常见需求.任何文件在读写之前都需要打开.大多数编程语言都使用open()方法来打开文件,以便使用文件对象(file object)读写.可以使用不同类型的文件访问模 ...

  8. 如何在linux内核中读写文件

    在VFS的支持下,用户态进程读写任何类型的文件系统都可以使用read和write着两个系统调用,但是在linux内核中没有这样的系统调用我们如何操作文件呢?我们知道read和write在进入内核态之后 ...

  9. python 学习记录-用python从硬盘中读写文件 Day21

    (一)文件操作 文件操作步骤: 第一步: 打开文件 f = open(文件名, 操作模式, encoding=文件编码) 第二步: 读写文件 f.read() f.write() 第三步: 关闭文件 ...

最新文章

  1. LruCache缓存处理及异步加载图片类的封装
  2. 中关村论坛首次设置技术交易板块,人工智能和新一代信息技术专场发布会即将召开...
  3. 【iOS与EV3混合机器人编程一系列五个】iOS_WiFi_EV3_Library 解剖连接EV3
  4. SetWindowOrg等相关函数
  5. EnumMap的用法和源码解析
  6. 151. 翻转字符串里的单词
  7. 云服务器+开发板搭建直播系统,自建流媒体服务器开直播
  8. 三十二、Java集合中的ArrayList
  9. 什么是野指针和内存泄露?如何避免野指针
  10. C# Winform 窗体美化(一、IrisSkin 换肤库)
  11. 计算机辅助翻译入门试题,2011级计算机辅助翻译考试试题纸(A卷)
  12. SpringBoot2整合Jooq和Flyway(一)
  13. shell错位_shell脚本出错!来大神指出错误出处!!!!
  14. pip更新pip,升级 pip3怎么做?
  15. 印象笔记Markdown样式美化
  16. 雷达信号处理基础 ch1 note1
  17. 树莓派4安装minecraft java 1.12.2
  18. 安全生产计算机考试成绩查询,安全生产在线模拟考试成绩查询
  19. 再谈回声消除测评丨Dev for Dev 专栏
  20. matlab svc doc,TCR+FC型SVC的研究及MATLAB仿真.doc

热门文章

  1. “囚徒困境”与帕累托最优理论以及基于OpenAI的辅助--测试(3)
  2. 渗透测试-burp suite实战
  3. 入手评测 骁龙888Plus、骁龙888和苹果a15哪个好
  4. 如何理解goto语句
  5. Linux命令之投影密码开启和关闭命令
  6. PHP编辑器哪个好用些?
  7. 超 60 万人落户西安,程序员就业下一站?
  8. ubuntu容器下时区修改方法
  9. springboot静态资源的配置
  10. 手机的短消息实现目前有三种方法(转)