私は TCP プロトコルを使用しており、ソケットから読み取り、データを byte[] 配列に書き込みます。
これが私のデータの例です:
94 39 E5 D9 32 83
D8 5D 4C B1 CB 99
08 00 45 00 00 98
41 9F 40 00 6C 06
9C 46 26 50 48 7D
C0 A8 01 05 03 28
サイズが 1024 の byte[] 配列を作成しました。次に、このメソッドを使用して null インデックスを削除します。
public void Decode(byte[] packet)
{
byte[] temp;
int c = 0;
foreach(byte x in packet)
if (x != 0)
c++;
temp = new byte[c];
for (int i = 0; i < c; i++)
temp[i] = packet[i];
MessageBox.Show(temp.Length.ToString());
}
ただし、有用なデータである可能性がある 0x00 インデックスも削除します...
ゼロ以外のデータ (末尾の 0) でラップされていない 0 を削除するにはどうすればよいですか?