Thông báo

Collapse
No announcement yet.

Help xử lí kí tự nhận được qua công com

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Help xử lí kí tự nhận được qua công com

    E đang làm đề tài co giao tiêp vdk pic voi pc,e dùng vs2010,chương trinh ở sư kiện oncom là như thế này :

    UpdateData();
    CString data;
    int i;
    CString tam;
    if (mscomm1.get_CommEvent()==2)
    {
    data = mscomm1.get_Input();
    tam=data;
    for(int i=0;i<strlen(tam);i++)
    {
    if(tam=='?'){
    tam.Delete(i);}
    }
    m_strReceive+=tam;
    }
    UpdateData(false);


    m_strReceive : là 1 editbox, e muốn từ vdk gửi lên 1 chuỗi thì sẽ xóa dữ liệu cũ trên m_strReceive và thay bằng dữ liệu mới , không phải cộng dồn ,vd duoi vdk e gửi lên 2 chuôi theo thứ tự là 12345# rùi delay_ms(4000); gửi tiếp 23455# ,trên editbox xuất hiện 12345#23455#,e đang không biết giải quyết như thế nào ???????

  • #2
    Em sửa thế này xem sao:

    UpdateData();
    CString data;
    int i;
    CString tam,tam2;
    if (mscomm1.get_CommEvent()==2)
    {
    data = mscomm1.get_Input();
    tam=data;
    tam2="";// gán chuỗi rỗng cho biến tam2.
    for(int i=0;i<strlen(tam);i++)
    {
    if(tam=='?'){
    tam.Delete(i);} else {tam2=tam2+tam;
    if (tam=='#'){
    m_strReceive=tam2;
    tam2="";// gan tam2 ve co do dai bang 0, em sua dung cu phap nhe, tôi chưa lập trình vs nên không chắc cú pháp đúng.
    }
    }
    //m_strReceive+=tam;
    }
    UpdateData(false);

    Comment


    • #3
      Nguyên văn bởi loiquang89 Xem bài viết
      E đang làm đề tài co giao tiêp vdk pic voi pc,e dùng vs2010,chương trinh ở sư kiện oncom là như thế này :

      UpdateData();
      CString data;
      int i;
      CString tam;
      if (mscomm1.get_CommEvent()==2)
      {
      data = mscomm1.get_Input();
      tam=data;
      for(int i=0;i<strlen(tam);i++)
      {
      if(tam=='?'){
      tam.Delete(i);}
      }
      m_strReceive+=tam;
      }
      UpdateData(false);


      m_strReceive : là 1 editbox, e muốn từ vdk gửi lên 1 chuỗi thì sẽ xóa dữ liệu cũ trên m_strReceive và thay bằng dữ liệu mới , không phải cộng dồn ,vd duoi vdk e gửi lên 2 chuôi theo thứ tự là 12345# rùi delay_ms(4000); gửi tiếp 23455# ,trên editbox xuất hiện 12345#23455#,e đang không biết giải quyết như thế nào ???????
      thay dòng "m_strReceive+=tam;" bằng dòng m_strReceive =tam; xem ok không .
      lập trình vi điều khiển 8051 - avr - pic- thiết kế mạch điện tử

      Học Hiểu Nguyên Tắc - Tuân Theo Nguyên Tắc - Giải Trừ Nguyên Tắc

      Comment


      • #4
        không được bạn àh!m_strReceive=tam thì chỉ nhận dc 1 kí tự, vì mình đọc từng kí tự mà !!!!,giúp mình với!!!!!!!!!!!!

        Comment

        Về tác giả

        Collapse

        loiquang89 Tìm hiểu thêm về loiquang89

        Bài viết mới nhất

        Collapse

        Đang tải...
        X