|
发表于 2021-2-7 20:22:09
|
显示全部楼层
福建省宁德市
同时支持 \r\n, \n\r, \r, \n 四种格式+高性能
|
L_文件读写_读入一行 | 文本型 | | |
文件句柄 | 整数型 | | | | 读入缓冲区长度 | 整数型 | | | | 返回_换行符格式 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_缓冲区 | 字节集 | | | 局_当前缓冲区长度 | 整数型 | | | 局_当前缓冲区指针 | 整数型 | | | 局_当前字节 | 字节型 | | | 局_下一个字节 | 字节型 | | | 局_偏移 | 整数型 | | | 局_读到文件尾 | 逻辑型 | | | 局_当前行 | 字节集 | | | i | 整数型 | | | i2 | 整数型 | | | 如果真 (读入缓冲区长度 ≤ 0 )读入缓冲区长度 = 128 循环判断首 ()局_缓冲区 = L_文件读写_读入字节集 (文件句柄, 读入缓冲区长度 ) 局_当前缓冲区长度 = L_字节集_取长度 (局_缓冲区 )如果真 (局_当前缓冲区长度 = 0 )返回 (取字节集数据 (局_当前行, #文本型, )) 如果真 (局_当前缓冲区长度 ≠ 读入缓冲区长度 )局_读到文件尾 = 真 局_当前缓冲区指针 = L_指针_取字节集指针 (局_缓冲区)计次循环首 (局_当前缓冲区长度, i )局_当前字节 = L_指针_到字节型 (局_当前缓冲区指针 + i - 1 )如果真 (局_当前字节 = 10 或 局_当前字节 = 13 )局_当前行 = 局_当前行 + 指针到字节集 (局_当前缓冲区指针, i - 1 )如果 (i = 局_当前缓冲区长度 )局_下一个字节 = 取字节集数据 (L_文件读写_读入字节集 (文件句柄, 1 ), #字节型, )如果真 (局_下一个字节 ≠ 0 ) 局_偏移 = 0 如果 (局_当前字节 = 10 )如果真 (局_下一个字节 ≠ 13 )局_偏移 = 1 如果真 (局_下一个字节 ≠ 10 )局_偏移 = 1 L_文件读写_移动读写位置 (文件句柄, -局_偏移, 1)
局_下一个字节 = L_指针_到字节型 (局_当前缓冲区指针 + i ) 局_偏移 = 0 如果 (局_当前字节 = 10 )如果真 (局_下一个字节 = 13 )局_偏移 = 1 如果真 (局_下一个字节 = 10 )局_偏移 = 1 L_文件读写_移动读写位置 (文件句柄, i - 局_当前缓冲区长度 + 局_偏移, 1) 如果 (局_当前字节 = 10 )如果 (局_下一个字节 = 13 )返回_换行符格式 = 字符 (10 ) + 字符 (13 )返回_换行符格式 = 字符 (10 )如果 (局_下一个字节 = 10 )返回_换行符格式 = 字符 (13 ) + 字符 (10 )返回_换行符格式 = 字符 (13 ) 返回 (取字节集数据 (局_当前行, #文本型, )) 计次循环尾 ()局_当前行 = 局_当前行 + 局_缓冲区 如果真 (L_文件读写_是否在文件尾 (文件句柄 )) 返回 (取字节集数据 (局_当前行, #文本型, )) 循环判断尾 (文件句柄 ≠ 0 )返回 (“”)
|
|