public byte[] esCapeChk(byte[] bMsg, int hNo, int tNo)
{
 int Head = hNo; // 검색할 Head 번지
 int Tail = tNo; // 검색할 Tail 변지
 byte[] bEscape = new byte[] { 0x7e, 0x7d }; // 삭제하고 싶은 Escape 문자를 추가
 ArrayList obj = new ArrayList(); // array List Create

 for (int i = 0; i < bMsg.Length; i++) // 수신받은 byte 전체를 arrylist에 저장
  obj.Add(bMsg[i]);

 for (int i = hNo; i < obj.Count - tNo; i++)
 {
  for (int j = 0; j < bEscape.Length; j++)
  {
   if (byte.Parse(obj[i].ToString()) == bEscape[j])
   {
    obj.RemoveAt(i);
    i = 0;
   }
  }
 }

 // escape를 제외한 개수로 배열을 새롭게 잡는다.
 byte[] newMsg = new byte[obj.Count];

 for (int i = 0; i < obj.Count; i++)
  newMsg[i] = (byte)(obj[i]);

 return newMsg;
}

이리저리 마음에 들진 않지만 서도...

+ Recent posts