문제

이진 파일에 쓸 문제가 있습니다.

//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.

버그는 무엇 일 수 있습니까?

도움이 되었습니까?

해결책

7 비트 인 ASCII로 인코딩하기 때문에 8 비트를 차단하여 0으로 설정하기 때문입니다.

왜 이렇게하고 있습니까? 나는 당신이 거기에서하고있는 일을 돌아 다니려고 노력하고 있습니다.

인코딩하는 대신 얻는 바이트 배열을 단순히 작성하지 않는 이유는 무엇입니까?

다시 말해,이 코드를 사용하지 않는 이유는 무엇입니까?

//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
m_brWriter.Write(byteFormat);
m_brWriter.Flush();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top