В коде 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: Персонаж «А».L: символ «L».NUL: управляющий символ "NULL".SOH: управляющий персонаж «Начало заголовка».STX: управляющий символ «Начало текста».
Пожалуйста, помогите мне с любым решением или обходным путем.
Большое спасибо.