2010-06-07 9 views
0

이 문자열에 txt file.eg .... ÿ 0111111110111101100011011010010001의 여분의 비트를 생략하고 이진 문자열을 저장할 때 나타나는 여분의 비트 ÿ을 생략하고 싶습니다. 저장 재미는 다음과 같습니다. 도와주세요. CFile::Open파일에서 여분의 비트를 생략하는 방법은 무엇입니까?

void LFSR_ECDlg::Onsave() 
{ 
    this->UpdateData(); 

    CFile bitstream; 
    char strFilter[] = { "Stream Records (*.mpl)|*.mpl| (*.pis)|*.pis|All Files (*.*)|*.*||" }; 

    CFileDialog FileDlg(FALSE, ".mpl", NULL, 0, strFilter); 



    if(FileDlg.DoModal() == IDOK) 
    { 
     if(bitstream.Open(FileDlg.GetFileName(), CFile::modeCreate | CFile::modeWrite) == FALSE) 
      return; 
     CArchive ar(&bitstream, CArchive::store); 


     CString txt; 
     txt=""; 
     txt.Format("%s",m_B);//by ANO 
     AfxMessageBox (txt);//by ANO 
     txt=m_B;//by ANO 
     ar <<txt;//by ANO 

     ar.Close(); 
    } 
    else 
     return; 

    bitstream.Close(); 
} 
+0

나는 마이크로 소프트 라이브러리를 사용하지 않는, 그래서 아마 당신을 도울 수 있지만, 나는이 코드를 단순화 제안 (문제에 필요하지 않은'CFileDialog' 같은 것을 제거하고) 'm_B'가 무엇인지 말해주십시오. 이렇게하면 문제를 재현하는 데 도움이됩니다. – Beta

+0

@ 베타 : m_B는 % s (으)로 인해 LPCTSTR입니다. –

+0

@Billy : 사실 당신은 그런 짐승이 되길 바랍니다. – sbi

답변

0

패스 CFile::typeBinary 당신이 bitstream을 구성. 그렇지 않으면 CString (m_B)을 만드는 것을 확인하십시오. 표시되는 추가 문자는 Byte Order Mark처럼 보입니다.

+0

도와 주셔서 감사합니다. m_B는 Cstring입니다. – thinthinyu

+0

이 코드를 사용하여 위의 문제를 해결할 수 있습니다. 모두에게 감사하십시오. – thinthinyu

0

void LFSR_ECDlg :: Onsave() { this-> UpdateData();

CFile bitstream; 
char strFilter[] = { "Stream Records (*.mpl)|*.mpl| (*.pis)|*.pis|All Files (*.*)|*.*||" }; 

CFileDialog FileDlg(FALSE, ".mpl", NULL, 0, strFilter); 

// 삽입 // TTT로

CFile cf_object; 
if(FileDlg.DoModal() == IDOK){ 
cf_object.Open(FileDlg.GetFileName(), CFile::modeCreate|CFile::modeWrite); 
//char szText[100]; 
//strcpy(szText, "File Write Test"); 
    CString txt; 
    txt=""; 
    txt.Format("%s",m_B);//by ANO 
    AfxMessageBox (txt);//by ANO 
int mB_size=m_B.GetLength(); 
cf_object.Write (m_B,mB_size); 

}

관련 문제