日常经常操作磁盘文件进行读写操作,核心库里的文件读写使用的是打开文件,通过返回文件号进行相关操作,但是没有提供现成的寻找字节集方法,一次性将文件全部读入内存有时又有一些局限性,分享一份分段读取进行寻找的写法
文件号 = 打开文件 (“f:\123.txt”, #读写, #无限制 )启动时间 = 取启动时间 ()返回位置 = 寻找数据 (文件号, 到字节集 (“9999999”), 返回位置 )调试输出 (“寻找数据耗时”, 取启动时间 () - 启动时间 )调试输出 (返回位置 )移动读写位置 (文件号, #文件首, 返回位置 )调试输出 (到文本 (读入字节集 (文件号, 7 )) )关闭文件 (文件号 )结束 ()|
寻找数据 | 整数型 | | |
文件号 | 整数型 | | | | 欲寻找的字节集 | 字节集 | | | | 起始搜寻位置 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 读入长度 | 双精度小数型 | | | 字节集 | 字节集 | | | 欲寻找的字节集长度 | 整数型 | | | 返回位置 | 整数型 | | | 读入的字节集长度 | 整数型 | | | 当前位置 | 整数型 | | | 文件总长度 | 整数型 | | |
读入长度 = 1024 × 1024 × 8 欲寻找的字节集长度 = 取字节集长度 (欲寻找的字节集 )返回位置 = 起始搜寻位置 文件总长度 = 取文件长度 (文件号 )移动读写位置 (文件号, #文件首, 返回位置 )读入的字节集长度 = 返回位置 判断循环首 (读入的字节集长度 < 文件总长度 ) 字节集 = 读入字节集 (文件号, 读入长度 ) 读入的字节集长度 = 读入的字节集长度 + 取字节集长度 (字节集 ) 返回位置 = 寻找字节集 (字节集, 欲寻找的字节集, 返回位置 + 1 ) 如果真 (返回位置 = -1 )  移动读写位置 (文件号, #文件首, 读入的字节集长度 - 欲寻找的字节集长度 ) 到循环尾 ()  返回 (读入的字节集长度 - 取字节集长度 (字节集 ) + 返回位置 - 欲寻找的字节集长度 - 1 ) 判断循环尾 ()返回 (-1 )
|