文件操作函数
一、文件操作函数
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类型)