У меня есть проблема, связанная с записью в двоичный файл.C#, записывая двоичные данные
//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
char[] charFormat = System.Text.ASCIIEncoding.ASCII.GetChars(byteFormat);
string strArrResults = new string(charFormat);
//This is how writing it to a file using a BinaryWriter object
m_brWriter.Write(strArrResults.ToCharArray());
m_brWriter.Flush();
Проблема в том, что он неправильно записывает файл. В большинстве случаев он пишет информацию правильно, но как только она превышает 127
, она пишет 63
(3F
неправильное представление) до 255
.
Затем эта ошибка повторяется до 512
.
В чем может быть ошибка?
Проблема заключается в том, что мне нужно добавить этот счетчик к сообщению и распечатать его в один флажок, когда я пытаюсь его распечатать, он печатается как 8 байт вместо 4 и неправильное значение. Я добавил перед печатью: // Это готовит счетчик как binaryint nCounterIn = ...; int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder (nCounterIn); byte [] byteFormat = BitConverter.GetBytes (nCounterTotalInNetwork); string strV = BitConvertor.ToString (byteFormat); strV + = // Строка сообщений DATA. m_brWriter.Write (strV); m_brWriter.Flush(); –