|
同时支持 \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 )返回 (“”)
|
|