zoukankan      html  css  js  c++  java
  • 文件操作函数

    一、文件操作函数

    1、GetFileOpenName(title,filePathName,fileName,extension,filter,initDir):文件打开对话框
    
       GetFileSaveName(title,filePathName,fileName,extension,filter,initDir):文件保存对话框
    
      参数说明:title:对话框标题
    
           filePathName:存储将要打开文件的路径
    
           fileName:存储将要打开文件的文件名
    
           extension:需要打开文件扩展名
    
           filter:过滤文件的类型
    
           initDir:文件打开对话框初始化的路径
    
       例:GetFileOpenName("打开文件",filePathName,fileName,"doc;Excel;txt","File(*.doc;*.excel;*.txt),*.doc;*.excel;*.txt","c:")
    
         GetFileOpenName("打开文件",filePathName,fileName,"doc;Excel;txt","File(*.doc;*.excel;*.txt),*.doc;*.excel;*.txt","c:")
    2、FileOpen(filePathName,fileMode,fileAccess,fileLock,writeMode):文件打开函数(读、写)
    
      参数说明:filePathName:要打开(读写)的文件地址
    
           fileMode:文件读写的模式:StreamMode!:流模式读写;LineMode:行模式读写(Default)
    
           fileAccess:文件读写方式:Read!(Default)、Write!
    
           fileLock:文件读写锁定方式:LockReadWrite!(Default)、LockRead!、LockWrite!、Shared!
    
           writeMode:文件写入模式:Append!:追加(Default);Replace!:替换(文件写时用到)
    
      例:li_open = FileOpen(filePathName,StreamMode!,Read!,LockReadWrite!)
    3、FileRead(li_open,variable):将文件filePathName中的内容读入至变量variable中
    4、FileWrite(li_open,variable):将变量variable的内容写入至文件filePathName中
    5、FileSeek(li_open,-10/10,FromBeginning!/FromEnd!/FromCurrent!):文件内容查找(从开始位置/结束位置/当前位置,向前/后10个字节出查找)
    6、FileCopy(sourceFile,targetFile,True/False):文件复制(将源文件sourceFile复制为目标文件targetFile;True:覆盖;False:不覆盖)
    7、FileExist(filePathName):判断文件是否存在
    8、FileDelete(filePathName):删除指定文件

    二、FileOpen与FileRead及FileWrite的应用(FileRead、FileWrite文件读写时,以StreamMode!(流)的方式读写时,每次只能读写32765字节的数据,所以操作时需要进行判断)

    1、FileOpen与FileRead事例

    //定义函数gf_read_file(string ls_filePathName) 返回值为:string
    //函数体如下:
    //定义变量
    string ls_fileName
    int li_open,li_reads,li
    long ll_fileLen
    blob lb_read,gb_read
    
    //打开文件
    //ls_filePathName = "d:update.sql"
    //可以利用GetFileOpenName()获取需要打开的文件
    //GetFileOpenName("打开文件",ls_filePathName,ls_fileName,"sql","File(*.sql),*.sql","c:")
    li_open = fileOpen(ls_filePathName,StreamMode!,Read!,lockReadWrite!)
    //文件内容的大小(字节)
    ll_fileLen = FileLength(ls_filePathName) 
    //文件大小的判定,从而设定需要读取该文件的次数
    if ll_fileLen>32765 then
        if mod(ll_fileLen,32765) = 0 then
            li_reads = ll_fileLen/32765
        else
            li_reads = ll_fileLen/32765 + 1
        end if
    else
        li_reads = 1
    end if
    //清空变量
    setnull(lb_read)
    setnull(gb_read)
    
    //文件读取
    for li = 1 to li_reads
        if fileRead(li_open,lb_read) = -1 then
            return ""
        else
            gb_read = gb_read + lb_read
        end if
    next
    FileClose(li_open)
    
    return string(gb_read) //文件内容读入得变量(blob类型)
  • 相关阅读:
    MyBatis源码分析-IDEA新建MyBatis源码工程
    MyBatis源码分析-SQL语句执行的完整流程
    揭开C++类中虚表的“神秘面纱”
    MyBatis源码分析-MyBatis初始化流程
    由一个多线程共享Integer类变量问题引起的。。。
    Java Web之Servlet技术
    Java内存模型与垃圾回收
    Java Web之会话技术
    Spring学习之第一个AOP程序
    Java Web之JSP技术
  • 原文地址:https://www.cnblogs.com/lvk618/p/3549053.html
Copyright © 2011-2022 走看看