Qt, c++ -从文件中读取控制字符
Qt, C++ - Reading control characters from a file
这是我第一次提问,请耐心等待。
我正在试图阅读文本文件的内容,这意味着要发送到打印机。在定义如何打印标签的字符中间有控制字符STX、SOH、CR、LF。在我的示例中,我将读取文件的内容并将其传递给内存中的数据结构(数组),向其附加一些数据,然后将其直接发送给打印机,擦除该结构中的数据。
执行此操作的函数如下:
void ClientThread::readFile2Structure(bool GoodOrBad)
{
int i = 0;
int j = 0;
// Clean structure
// here clean the structure
// According to the name comes from the arguments.
if(GoodOrBad == 1)
{
labelFile.setFileName(labelPathGood);
//qDebug() << "Fez o set filepath" << labelPathGood;
}
else if(GoodOrBad == 0)
{
labelFile.setFileName(labelPathBad);
//qDebug() << "Fez o set filepath" << labelPathBad;
}
if (!labelFile.open(QIODevice::ReadOnly))
{
qDebug() << "Unable to open label definition file PrinterGood.ini/PrinterBad.ini!";
return;
}
else
{
while (!labelFile.atEnd())
{
temporaryStructure[i] = labelFile.readLine();
i++;
}
// for debug purposes only!
qDebug() << "Structure";
for(j=0; j<=i; j++)
{
qDebug() << temporaryStructure[j];
}
}
}
数据结构有如下定义:QByteArray temporaryStructure[50];
要发送的文件为:strong>STX f259 CRLF SOH D STX L CRLF stx l crlf 这里 CRLF PC CRLF SC CRLF H25 CRLF 1W1c66000004100202000016036 CRLF
粗体部分为控制字符。
在我的控制台中,当我执行上面的函数时,所有的控制字符都显示为小正方形,甚至没有出现CRLF。
为什么这些不同的控制字符显示为小方块,这些将被修改与复制到一个QByteArray数组?
恐怕打印机什么也出不来,我还没有一个可以测试的,FreeSerialPort Monitor将是一种方法,看看是否一切都是正确的。
感谢您的关注
Unicode有很多字符,据我所知,没有一种字体可以代表所有字符。未表示的字符(包括大多数不可打印的字符)使用特殊的字形(最常见的是正方形)打印。
回答你问题的第二部分- QByteArray
包含原始数据,并且在复制时未被修改。
要删除CR和LF,可以使用:
byteArray.replace('n', "");
byteArray.replace('r', "");
相关文章:
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 为 Sql 服务器实现 odbc 包装器.将数据库数据读取为字符或要求驱动程序将数据转换为 C 类型
- ifstream 读取的字符与文件中写入的字符不同
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- xcode 从源代码中删除奇怪的控制字符
- 如何在 c++ 中从 SQL 数据库中读取亚洲字符
- 如何从文本文件中一次读取一个字符
- 读取字符串字符时出错 - 对于数组中的字符串值
- 读取字符串字符时出错
- 将大文件读取到字符数组的正确方法
- C++ 使用 Strtok 读取字符串字符时出错
- 一次读取一个字符的文件,直到使用 read(2) 和 write(2) 换行符
- 尝试一次读取一个字符的矩阵
- 仅从文件 - c++ 读取字母字符
- SQLGetPrivateProfileString 错误地读取 Unicode 字符
- 使用 std::find 查找从二进制文件中读取的字符并转换为 std::vector 中的 std::string<string> 会产生这种不可预测的行为?
- 如何从字符串中读取单个字符
- 从单独的文件中读取每个字符
- 由于隐藏/控制字符,在C++中读取文本文件的行失败
- Qt, c++ -从文件中读取控制字符