读取文件,并输出 bytescharsNums:文件字符个数,不是文件大小 20220908 自动判断是否是二进制文件。isHexFile 是输出
| 1072 | //bytescharsNums:文件字符个数,不是文件大小 |
| 1073 | //20220908 自动判断是否是二进制文件。isHexFile 是输出 |
| 1074 | CODE_ID CmpareMode::scanFileOutPut(CODE_ID code, QString filePath, QList<LineFileInfo>& outputLineInfoVec, int &maxLineSize, int& charsNums, bool &isHexFile) |
| 1075 | { |
| 1076 | QFile* file = new QFile(filePath); |
| 1077 | file->open(QIODevice::ReadOnly); |
| 1078 | uchar* m_fileFpr = file->map(0, file->size()); |
| 1079 | |
| 1080 | if (code == UNKOWN) |
| 1081 | { |
| 1082 | code = getTextFileEncodeType(m_fileFpr, file->size(), filePath); |
| 1083 | } |
| 1084 | |
| 1085 | //UNICODE_LE格式需要单独处理 |
| 1086 | if (code == UNICODE_LE) |
| 1087 | { |
| 1088 | charsNums = readLineFromFileWithUnicodeLe(m_fileFpr, file->size(), outputLineInfoVec, outputLineInfoVec, 0, maxLineSize); |
| 1089 | } |
| 1090 | else |
| 1091 | { |
| 1092 | code = readLineFromFile(m_fileFpr, file->size(), code, outputLineInfoVec, maxLineSize, charsNums, isHexFile); |
| 1093 | } |
| 1094 | |
| 1095 | file->unmap(m_fileFpr); |
| 1096 | file->close(); |
| 1097 | delete file; |
| 1098 | |
| 1099 | return code; |
| 1100 | } |
| 1101 | |
| 1102 | //读取文件,并输出 |
| 1103 | //bytes charsNums:文件字符个数,不是文件大小 |