在 CAPL 代码中,我有一个“byte[]”数组,这个数组应该保存“Hex”值(00..FF)。
问题是,当我尝试将“Hex”数组保存到“ASCII”格式的文件中时,它会完全忽略“00”(即“NULL”字符),从而导致输出文件损坏。
variables
{
byte UploadedData[56, 41, 4C, 00, 01, 02, 00, 02];
char ExportedTextFile[9];
char FileName[32] = "FlasherImage.can";
dword FileHandle = 0;
}
void ExportDataFile(void)
{
int u16Index = 0;
FileHandle = OpenFileWrite(FileName, 0);
for (u16Index = 0; u16Index < 8; u16Index++)
{
snprintf(ExportedTextFile, elcount(ExportedTextFile), "%c", UploadedData[u16Index]);
filePutString(ExportedTextFile, elcount(ExportedTextFile), FileHandle);
}
fileClose(FileHandle);
}
预期文件应为:VALNULSOHSTXNULSTX
获得的文件是(“NUL”被忽略):VALSOHSTXSTX
其中: V:字符“V”。A:字符'A'。L:字符“L”。NUL:“NULL”控制字符。SOH:“标题开头”控制字符。STX:“文本开头”控制字符。
请帮助我解决任何解决方案或解决方法。
非常感谢。